jabranr/lassi

基于Slim和Eloquent的PHP快速项目模板

0.0.5 2016-10-26 23:30 UTC

This package is auto-updated.

Last update: 2024-09-24 04:05:30 UTC


README

PHP快速项目模板,使用Slim框架和Eloquent数据库。

Lassi

Lassi是一个小型的PHP模板,用于使用Slim框架Eloquent数据库组件 - 使您能够快速使用MVC设计模式和存储库开始构建PHP项目。

警告:项目处于alpha状态。更多信息请见问题跟踪器

安装和设置

使用composercreate-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));
	}
}

问题跟踪

请将任何问题报告给 仓库问题跟踪器

贡献

我很乐意得到一些帮助并进一步扩展此模板,使其对更广泛的受众有用。如果您认为可以改进此模板,请将其项目进行分支并提交方便时的拉取请求。

许可

MIT 许可证 © 2015 – 2016 Jabran Rafique (@jabranr) | 贡献者