php-ci/boilerplate

一个简单的 CodeIgniter 框架模板

dev-master 2018-04-04 17:55 UTC

This package is not auto-updated.

Last update: 2020-06-10 23:05:17 UTC


README

CodeIgniter 的高级模板。

要求

  • PHP 7.1+
  • PDO 扩展。
  • Composer 或 composer.phar。
  • NPM。

入门

克隆仓库。安装依赖项

composer install
npm install

迁移数据库

php app migrate

好了,你现在可以开始使用了!

特性

  • Twig 模板引擎。
  • 基于角色和权限的用户访问控制库 Aauth。
  • 常见的 Symphony CLI 命令,用于常见任务,例如开发服务器、生成模型、控制器等。
  • Eloquent ORM。
  • 根据请求类型管理响应的自定义异常处理。
  • Webpack 和 Laravel Mix 用于合并和压缩 JS 和 CSS 库。
  • 类映射自动加载以加载自定义类。
  • 全局 JavaScript 事件。

基本

开发服务器

要启动开发服务器,请运行以下命令。

php app serve

您也可以更改默认的主机和端口。

php app serve <host> <port>

生成模型

要生成一个模型,请运行以下命令。

php app create:model <model_name>

您可以通过在目录之间添加 '/' 来定义子目录。请注意,模型将使用 Composer 类映射自动加载进行自动加载,因此如果您手动创建模型,则需要运行 'composer dump-autoload'。

默认情况下,所有模型都将扩展到 Eloquent ORM 基类。如果您希望在 'MY_Model' 类中扩展 CI 查询构建器,而不是 Eloquent,请在核心目录中扩展模型到 'CI_Model'。

生成控制器

要生成一个控制器,请运行以下命令。

php app create:controller <controller_name> <core_class>

这里核心类可以是 'AdminController'、'GuestController' 或 'UserController'。

模型

Eloquent ORM 已集成,要有效使用它,您需要为每个数据库表创建单独的模型。要使用模型,请使用以下代码片段加载它

$this->load->model(<Model>)

加载后,您可以按照 Eloquent 语法访问表,例如

Model::get(id)

要了解更多关于使用 Eloquent 的信息,请参阅 Laravel 的 Eloquent 用户指南

异常处理

要抛出异常,请使用以下代码

show_error($error_heading, $message, $template, $error_code) 

异常类根据请求类型发送响应;例如,在 AJAX 请求中返回 JSON,在 CLI 中返回纯文本,在浏览器中返回 HTML。

JavaScript 事件

为了支持常见的CRUD功能,已添加全局事件,这些事件可以快速用于开发。

  • 表单事件

您可以在任何表单上使用默认的表单提交事件,只需在表单元素上添加'ajax-submit'类。表单验证也与此事件预先构建。要验证字段,您可以在表单元素上使用自定义数据属性。所有自定义属性均遵循ParsleyJS

示例表单

<form action="<url>" class="ajax-submit">
	...
	<input type="text" data-parsley-required name="<field name>" />
	...
</form>
  • 模态事件:还添加了用于管理'bootstrap 模态框'的事件。要使用它,您必须在按钮或任何其他可点击元素上指定'open-modal'类,以及'data-url'属性。

示例

<button class="open-modal" data-url="<handler method>">Open Modal</button>

处理器方法不是预先构建的,您可以根据需要以任何方式构建它;要求响应格式如下,为JSON

{
	'status': true,
	'modal':<modal html>
}

资源处理

为了最小化css和js依赖项,使用

npm run production

开发或本地服务器上,可使用以下方法

npm run dev

要添加更多全局依赖项,请使用npm添加包,并在app.scss和app.js中包含资源文件。

构建使用

作者

还可以查看参与此项目的贡献者列表

许可

该项目受MIT许可协议的许可 - 有关详细信息,请参阅LICENSE.md文件。