Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

lisijie/php-framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

289 Commits

Repository files navigation

一个轻量级PHP框架

一个优雅、简洁、高效的PHP框架,用于快速开发扩展性强、可维护性强的PHP项目,零学习成本。

安装说明

只安装框架:

$ composer require lisijie/framework

创建一个带有基本应用程序模板的项目**(推荐)**:

$ composer create-project lisijie/framework-app

使用说明

一、目录结构

一个基本的应用目录结构如下:

|- app 应用目录
| |- Command 命令行脚本控制器(可选)
| |- Config 配置文件
| |- Controller Web控制器
| |- Exception 自定义异常类型和异常处理器(可选)
| |- Model 数据模型,提供数据的读写接口,一张表对应一个类(可选)
| |- Service Service模块,封装业务逻辑,操作Model(可选)
| |- View 视图模板文件
|- data 运行时数据目录(日志、缓存文件等)
|- public 发布目录,存放外部可访问的资源和index.php入口文件
|- vendor composer第三方包目录

框架使用符合PSR规范的自动加载机制,可以在 app 目录下创建其他包。如工具包 Util,使用的命名空间为 App\Util

二、配置文件

配置文件统一放置在 app/Config 目录下,其下又分了 development、testing、pre_release、production 子目录,分别用于开发环境、测试环境、预发布环境、生产环境的配置。放在 Config 根目录下的配置文件表示全局配置,如路由配置。放在环境目录下的为差异配置。加载方式是:首先读取全局配置,然后读取差异配置,然后将差异配置的配置项覆盖到全局配置。

配置的获取方式为:

\App::config()->get('app', 'varname', 'default');

其中 app 表示配置文件名,varname 表示配置项, default 表示当不存在该配置项时,使用它作为返回值。

三、命令行脚本

很多项目都会有在命令行模式下执行PHP脚本的需求,例如结合crontab做定时数据统计、数据清理等。在本框架中,命令行脚本控制器统一放在Command目录下,需要继承自 Core\Command,如果需要参数,则必须在方法中声明。示例代码:

<?php
namespace App\Command;
use Core\Command;
class DemoCommand extends Command
{
 public function testAction($name)
 {
 $this->stdout("hello, {$name}\n");
 }
}

执行命令行脚本方法:

直接在终端使用以下命令执行

php index.php 路由地址 参数1 参数2... 

例如以上代码的执行命令为

[demo@localhost public]$ php index.php demo/test world
hello, world

如果你需要定时执行以上命令,把它添加到crontab配置中即可。

四、控制器

控制器位于 app\Controller 目录下,可以在该目录下创建多个包,每个控制器类的名称以 Controller 为后缀。如:MainController.php。一个控制器类大致如下:

<?php
namespace App\Controller;
class MainController extends Controller
{
 public function init()
 {
 // 初始化方法
 }
 public function indexAction()
 {
 $this->assign('foo', 'bar');
 return $this->render();
 }
}

每个动作方法必须加上 Action 后缀。对应的访问地址为:http://domain.com/?r=main/index。其中 r 参数为路由变量,路由地址是 main/index。路由地址为全小写形式,多个单词将被转换成小写+减号的形式,例如 UserInfoController::indexAction() 对应的路由地址为 user-info/index。为了让url看起来更加美观,建议在web服务器配置url rewrite。

五、服务器配置

Nginx

要启用Url重写,请在Nginx网站配置中增加以下配置:

location / {
 try_files $uri $uri/ /index.php?$args;
}

About

一个优雅、简洁、高效的PHP框架

Resources

Stars

Watchers

Forks

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /