Download the PHP package pfinal/leaf without Composer
On this page you can find all versions of the php package pfinal/leaf. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package leaf
Leafphp 快速入门
安装
交流QQ群
17778706
编码规范
- 遵循PSR-1、PSR-2、PSR3、PSR-4、PSR-16 等标准
- PHP代码文件必须以 ``
- PHP代码文件必须使用 不带BOM的 UTF-8 编码
- 命名空间与目录对应,文件名采用"类名.php"格式,目录大小写与命令空间相同,类名大小写与文件名相同(PSR-4规范)
- 类的命名必须遵循大写开头的驼峰命名规范(例如
UserController
) - 方法名称如果是多个单词,必须遵循小写开头的驼峰命名规范(例如
createOrder
) - 类中的常量所有字母都必须大写,多个单词间用下划线分隔
- 普通目录全小写格式,多个单词之间用中杠分隔(例如
views/member-profile
)
基本概念约定
- 项目 project
- 应用 application
- 模块 bundle
- 控制器 controller
- 动用 action
- 路由 route
目录结构
- config 配置文件目录
- app.php 应用配置文件
- routes.php 路由
- runtime 运行时目录,存放缓存、日志、调式信息等,需要写权限
- .gitignore 版本管理工具git忽略清单,请勿删除此文件
- views 视图文件目录
- document 文档
- src PHP源代码
- tests 测试
- vendor 第三方代码 composer管理,请勿手动修改该目录内容
- web 项目发布的根目录
- static 第三方静态资源目录
- themes 主题目录,项目的css、js、img等存放在此目录
- index.php 前端控制器(MVC模式的入口文件)
- assets 框架自动管理的资源文件,请勿手动修改该目录内容
- temp 临时文件目录,需要写权限
- uploads 文件上传目录,需要写权限
- .gitignore 版本管理工具git忽略清单
- console 命令行入口文件
- phpunit 单元测试入口文件
开启调式模式
nginx配置
路由
下面以demo项目为例
在 config/routes.php
中定义路由
基本 GET 路由,浏览器访问 http://localhost/demo/web
只允许POST请求的路由,以POST方法访问 http://localhost/demo/web/foo
注册路由响应任意方式的HTTP请求,不对请求方法进行限制,post或get均可,浏览器访问 http://localhost/demo/web/bar
基础路由参数 浏览器访问 http://localhost/demo/web/user/1
方法注入,框架将自动注入Leaf\Request
实例,浏览器访问 http://localhost/demo/web/foo?name=leaf
支持注入的对象
生成URL
如果访问时url中没有隐藏入口文件index.php
,则生成的url也会自动包含index.php
请求与响应
Request
Response
重定向
中间件
编写中间件类 src/Middleware/TestMiddleware.php
注册一个名为test
的中间件
为路由绑定这个test
中间件
浏览器访问
`http://localhost/demo/web/info?age=17` 被中间件拦截
`http://localhost/demo/web/info?age=18` 请求将被通过
为一组路由绑定中间件 (绑定多个中间件,传入数组即可)
如果希望中间件,在执行之后生效,可以使用下面的方式,
$next()
返回值可能是Request\Response
对象或string
控制器
控制器类通常以Controller作为后缀,例如 src/Controller/SiteController.php
任何PHP类均可作为控制器
路由指向控制器中的方法
浏览器访问 http://localhost/demo/web/home
如果需要包含多个字词,建议在 URI 中使用中杠
来分隔,例如user-profile
使用注解语法注册路由,自动注册路由。class上的Middleware
,将对整个控制器生效
添加注解路由 Route::annotation('Controller\UserController');
视图
支持twig和blade模板引擎,跟据后缀自动识别。
twig http://twig.sensiolabs.org
blade http://laravel.com/docs/5.1/blade
将变量共享给所有模板
扩展twig模板 增加一个count函数,用于在模板中统计数组成员数量(twig提供了length过滤器)
twig中使用自定义的count函数
Bundle
Bundle可以更好的组织功能模块
目录结构
Bundle类,继承自Leaf\Bundle
类即可,主要用于定位Bundle所在目录
注册Bundle
加载视图
Bundle的视图文件位于Bundle的resources/views目录中
顶级views目录中,与Bundle同名目录下的视图文件,将优先使用。
例如/views/FooBundle/home.twig
,将替换src/FooBundle/resources/views/home.twig
文件。
加载路由
Bundle注册后,Bundle的路由文件会自动加载,例如FooBundle/resources/routes.php
。
自动生成Bundle
数据库
基本用法
查询构造器
手动分页
系统服务
会话,调用Session相关方法时,会自动开启Session
表单验证
验证器详细文档
错误
日志
验证码
文件上传
认证
权限
自定义分页样式
命令行
更多扩展
All versions of leaf with dependencies
symfony/http-foundation Version ^2.0
symfony/console Version ^2.0
pfinal/blade Version ^1.0
pfinal/database Version ^1.0
pfinal/session Version ^1.0
pfinal/routing Version ^1.8
twig/extensions Version ^1.0
psr/log Version ^1.0
monolog/monolog Version ^1.0