jabranr / lassi
基于Slim和Eloquent的PHP快速项目模板
Requires
- php: >=5.5.9
- illuminate/database: ^5.1
- slim/slim: ^2.6
Requires (Dev)
- phpunit/phpunit: ~4.8
This package is auto-updated.
Last update: 2024-09-24 04:05:30 UTC
README
PHP快速项目模板,使用Slim框架和Eloquent数据库。
Lassi是一个小型的PHP模板,用于使用Slim框架和Eloquent数据库组件 - 使您能够快速使用MVC设计模式和存储库开始构建PHP项目。
警告:项目处于alpha状态。更多信息请见问题跟踪器。
安装和设置
使用composer
的create-project
命令安装。这将安装Lassi及其所有依赖项,即Slim框架和Eloquent数据库。
$ composer create-project jabranr/lassi
配置
Lassi使用.env
文件来设置其配置。它附带一个名为.sample.env
的样本文件。Lassi将在运行时分别查找.dev.env
、.dist.env
或.env
,否则将抛出NotFoundException
。
字符集 & 校对
默认情况下,.sample.env
文件将字符集和校对配置设置为UTF-8 mb4
以支持各种字符编码。当然,您可以更新为您的选择。有关最佳编码实践,请参阅在PHP中使用UTF-8:The Right Way。
路由
在根目录中使用routes.php
设置路由。您将像在Slim框架中一样设置路由。毕竟,它是在使用Slim框架。有关设置路由的更多信息,请参阅Slim框架文档。
结构
控制器:控制器应保存在controller/
目录中。所有控制器都必须扩展Lassi\App\Controller
基本控制器类,并通过LassiLassi::getInstance()
方法将其实例传递给其构造函数。您还可以使用useModel(string|array $model)
方法添加相关模型。您可以随意命名控制器,但请遵守最佳实践。
模型:所有相关模型都保存在model/
目录中,并必须扩展Illuminate\Database\Eloquent\Model
类。您将像在Eloquent中一样使用模型。有关设置模型和使用其他选项的更多信息,请参阅Eloquent数据库快速入门指南。
在提到的目录中有一个示例控制器和模型,供您开始。
视图:所有视图/模板都保存在view/
目录中。
资产:所有资产都保存在public/
目录中。
示例
创建项目
使用Composer create-project
命令和cd
进入项目目录创建项目。
$ composer create-project jabranr/lassi
$ cd path/to/lassi
更新配置
在.dev.env
文件中根据需要更新配置。
启动服务器
启动PHP内置服务器,并在浏览器中导航到https://:8000
。
$ php -S localhost:8000 -t public
设置路由
- 添加
hello
路由
在routes.php
中添加新的hello
路由,并在浏览器中通过导航到https://:8000/hello
来测试它。
$app->get('/hello', function() use ($app) { $app->response->write('Hello World'); });
- 添加
goodbye
路由
在routes.php
中添加新的goodbye
路由以渲染模板。创建一个名为goodbye.php
的新文件,包含基本的HTML,并将其保存在/view
目录中。
<!DOCTYPE html> <html> <head> <title>Lassi goodbye template</title> </head> <body> <h1>Goodbye!</h1> </body> </html>
直接从路由定义或使用Controller
调用此模板进行渲染。
直接从路由定义中获取
$app->get('/goodbye', function() use ($app) { return $app->render('goodbye.php'); });
使用控制器
在 /controller
目录下的 WelcomeController.php
文件中添加一个新公共方法 goodbye()
。
class WelcomeController extends Lassi\App\Controller { ... public function goodbye() { return $this->app->render('goodbye.php'); } }
修改路由定义以使用控制器。
$app->get('/goodbye', 'Lassi\Controller\WelcomeController:goodbye');
欲获取完整参考信息,请参阅 Slim Framework 文档
使用 Eloquent
要设置任何数据库连接,请在相关的 *.env
文件中填写所需信息。
设置 SQLite 数据库
至少需要 SQLite 文件的绝对路径和将 db_driver
值设置为 sqlite
。
db_driver = sqlite (Required) db_name = path/to/foo.sqlite (Required) db_prefix = lassi_ (Optional)
设置 MySQL、SQL、MSSQL 或 Sybase 数据库
db_driver = mysql (Required) db_host = localhost (Required) db_name = lassi (Required) db_username = root (Required) db_password = p@ssword (Required) db_prefix = lassi_ (Optional)
在建立连接后,使用 Eloquent 非常简单。要了解如何使用 Eloquent 的更多信息,请参阅 官方 Eloquent 文档。
使用 Eloquent 创建表
您可以使用 Illuminate\Database\Capsule\Manager::schema()
方法来设置数据库迁移。以下是一个创建 lassi_users
表的示例。
class WelcomeController extends Lassi\App\Controller { ... public function makeUserTable() { Illuminate\Database\Capsule\Manager::schema()->create('users', function($table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); }); } }
调用 Lassi\Controller\WelcomeController->makeUserTable()
将在数据库中创建一个新的表。
您可以使用控制器构造函数中的 useModel()
方法将模型添加到控制器中,即。
class WelcomeController extends Lassi\App\Controller { public function __construct() { parent::__construct(LassiLassi::getInstance()); $this->useModel('user'); } }
或者可以直接使用 Lassi\Model
命名空间直接访问,即。
class WelcomeController extends Lassi\App\Controller { ... public function create() { $user = new Lassi\Model\User; $user->name = 'Jabran Rafique'; $user->email = 'hello@jabran.me'; $user->save(); } }
从 Eloquent 获取信息并将其传递到模板。
class WelcomeController extends Lassi\App\Controller { ... public function goodbye() { $user = Lassi\Model\User::find(1); return $this->app->render('goodbye.php', array('user' => $user)); } }
问题跟踪
请将任何问题报告给 仓库问题跟踪器。
贡献
我很乐意得到一些帮助并进一步扩展此模板,使其对更广泛的受众有用。如果您认为可以改进此模板,请将其项目进行分支并提交方便时的拉取请求。