热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php的前端开发框架,GitHubluin/phplugitframework:简单优雅的PHP前端框架。

开始Lugit提供简单优雅的方法帮助你实现PHP开发,需要PHP5.0以上的版本支持。URL映射Lugit使用PATHINFO模式,如:建

开始

Lugit提供简单优雅的方法帮助你实现PHP开发,需要PHP5.0以上的版本支持。

URL映射

Lugit使用PATHINFO模式,如:

建议使用rewrite将上述URL写成

对于Apache服务器可以在app文件夹下建立.htaccess文件,内容如下:

RewriteEngine on

RewriteCond $1 !^(index\.php|favicon\.ico|robots\.txt)

RewriteRule ^(.*)$ index.php/$1 [L]

更多内容请参见Apache服务器文档。

Controller、Action与Parameter

Lugit将URL映射为Controller、Action和Parameter。

对应的Controller为people,Action为tom,Parameter[0]为book,Parameter[1]为comment

如果缺少Action则默认为index, 缺少Controller同理

对应的Controller为people,Action为index

对应的Controller为index,Action为index

第一个示例: Tom的书评

要处理URL:

需要在app目录下的controllers文件夹下建立PeopleController.php文件,内容如下:

class PeopleController extends Controller

{

public function tomAction()

{

//$this->parameters[0] == 'book'

$this->setVar('p0', $this->parameters[0]);

//或 $this->vars->p0 =$this->parameters[0];

//$this->parameters[1] == 'comment'

$this->setVar('p1', $this->parameters[1]);

}

}

在views下建立people文件夹,在里面建立tom.phtml文件,内容如下:

Hello tom!

p0 is: vars->p0; ?>

p1 is: vars->p1; ?>

问题: 其他人的书评

设想网站的用户会有很多,所以会有很多如下的网址:

...

我们可以在PeopleController.php里塞满以人名命名的方法,但在Lugit里有更好的解决方案:

class PeopleController extends Controller

{

public function adaptAction($people)

{

$this->setVar('people', $people);

//$this->parameters[0] == 'book'

$this->setVar('p0', $this->parameters[0]);

//$this->parameters[1] == 'comment'

$this->setVar('p1', $this->parameters[1]);

}

}

对应地,在views/people文件夹下建立adapt.phtml,内容为:

Hello vars->people; ?>!

p0 is: vars->p0; ?>

p1 is: vars->p1; ?>

关于adapt

当Controller或Action不能确定时可以使用adapt。

比如要处理URL:

我们只要在controllers文件夹下建立AdaptController.php文件:

class AdaptController extends Controller

{

public function adaptAction($num)

{

$this->setVar('number', $num);

$this->setVar('people', $this->controllerName);

}

}

在views文件夹下建立adapt/adapt.phtml进行处理即可。

处理POST & GET

class SampleController extends Controller

{

public function indexAction()

{

$this->request->people == 'tom'; //true

}

}

过滤输入

Lugit提供了优雅的方法过滤输入:

class SampleController extends Controller

{

public function indexAction()

{

$var_people = $this->request->filter('trim', 'Class::staticMethod')->people;

}

}

相当于:

class SampleController extends Controller

{

public function indexAction()

{

$var_people = $this->request->people;

$var_people = trim($var_people);

$var_people = Class::staticMethod($var_people);

}

}



推荐阅读
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • PHP中的单例模式与静态变量的区别及使用方法
    本文介绍了PHP中的单例模式与静态变量的区别及使用方法。在PHP中,静态变量的存活周期仅仅是每次PHP的会话周期,与Java、C++不同。静态变量在PHP中的作用域仅限于当前文件内,在函数或类中可以传递变量。本文还通过示例代码解释了静态变量在函数和类中的使用方法,并说明了静态变量的生命周期与结构体的生命周期相关联。同时,本文还介绍了静态变量在类中的使用方法,并通过示例代码展示了如何在类中使用静态变量。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
author-avatar
mEmorIes-谨年一_950
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有