djordje / li3_backend
Lithium PHP 框架的后端结构
Requires
- php: >=5.3
- composer/installers: dev-master
This package is not auto-updated.
Last update: 2024-09-23 13:39:11 UTC
README
#li3_backend
Lithium 应用程序的后端
这个库旨在使您应用的后端具有一致的视图。您可以为需要通过访问后端才能使用的应用部分创建 partial-component(例如用户注册、登录等)和 backend-component 视图。此外,这个库应该可以简化使用依赖 li3_backend 的库,因为它将已经包含所有依赖和逻辑,以便您可以在应用程序中覆盖它以适应您的需求。
目录
安装
1a. 您可以通过 Composer 安装它
{
"require": {
"djordje/li3_backend": "dev-master"
}
}
1b. 或者,您可以克隆 Git 仓库到您的任何库目录
cd libraries
git clone git://github.com/djordje/li3_backend.git
2. 将其添加到应用程序 bootstrap/libraries.php 文件的底部(您可以可选地传递 URL 前缀到库选项)
// backend routes with default prefix `backend` Libraries::add('li3_backend'); // or pass custom backend url prefix // backend routes with custom prefix `admin` Libraries::add('li3_backend', array('urlPrefix' => 'admin')); // or pass app name to be defined in li3_backend bootstrap Libraries::add('li3_backend', array('appName' => 'My app'));
包含的资产
- 库
- jQuery v1.10.1
目前,jQuery 1.x 支持 IE 9 之前的版本。这可以简化自定义或现有 jQuery 插件与后端的集成。
- Twitter Bootstrap v2.3.2
这个库包括完整的 Twitter Bootstrap(CSS、JS 和图标图像),以实现所有后端视图的一致样式,并简化开发。
- Google Code Prettify v4-Mar-2013
包括 JS 和定制的 CSS 以适应 Twitter Bootstrap。如果您需要在后端显示某些内容,则可以启用更简单的代码表示。
- 附加
- confirm-action.js
如果加载,将要求您在具有 data-confirm 属性的元素上确认任何操作,并显示值作为消息。默认加载以在执行危险操作之前警告用户。
使用方法
引导
如果没有定义常量 LITHIUM_APP_NAME,则将其定义为 'Lithium app'。这将在导航栏中使用。对于 'partial-component' 和带有 ' backend' 后缀的 'backend-component',这将使用户能够看到当前位置。您可以在库选项中指定应用程序名称,传递带有期望名称的键 appName,如果未定义,它将在此引导中用于定义 LITHIUM_APP_NAME。
它添加了后端路由操作名称的规则,并在检测到后端路由时调用 config/backend_bootstrap.php。这使您能够添加自定义后端引导,并将链接添加到 NavBar 模型。
路由
添加路由以允许访问包含在库 webroot 和后端路由前缀中的资产。您可以通过库选项自定义后端路由前缀,如 安装 中所述。
用于获取资产的路由使用以下模式:/assets/<library without li3_ prefix>/<args>,例如 /assets/backend/css/bootstrap.css 将路由到 li3_backend/webroot/css/bootstrap.css。
您可以通过查看 加速加载或覆盖资产 来加速或覆盖包含的资产。
控制器
所有使用此库的控制台应该继承自 \li3_backend\extensions\controller\ComponentController 以处理模板、布局和元素加载的逻辑。
ComponentController 包含一个 $_viewAs 参数,您可以在自己的控制台中重写它来指定所有控制器操作的期望后端视图。
ComponentController 包含一个 _viewAs() 方法,您可以在单个操作中使用它来指定期望的视图。此方法接受一个参数,并接受与 $_viewAs 属性相同的值。
public function login() { $this->_vieweAs('partial-component'); }
有效的值有
'partial-component'如果您想创建可以由没有后端访问权限的用户访问的内容,例如登录或用户注册页面。'backend-component'如果您创建的内容应该加载后端模板(在导航栏中包含后端链接),例如具有用户管理选项的页面。
默认情况下,继承自 ComponentController 的控制器将使用您的 'default' 布局和渲染路径来处理所有操作,除了以 backend_ 开头的操作,这些操作会自动以 backend-component 的方式反应。
助手
此库提供了一个后端助手 \li3_backend\extensions\helper\Backend,它扩展了 Html 助手,并带来了 nav() 和 dropdown() 方法,这些方法可以生成用于与 Twitter Bootstrap 风格化的正确标记。
您可以通过这种方式在模板中使用它:$this->backend->{method}。
nav() 接受三个参数,与 Html::link() 相同:title、url 和 options。它渲染包裹在 <li> 中的 <a>,并在当前 URL 是 <a> 的 URL 时,向 <li> 添加 active 类。
查看类中的文档块以了解更多信息。
dropdown() 从数组生成下拉菜单,该数组应该包含 'title' 和 'links',以及可选的 'icon' 键。
查看类中的文档块以了解更多信息。
模型
我们使用 \li3_backend\models\NavBar 作为添加链接到后端导航栏的容器。
基本上,在大多数情况下,您只需向组件菜单中添加一个链接即可启用对您的库的访问
\li3_backend\models\NavBar::addBackendLink(array( 'title' => 'Blog posts', 'url' => array('li3_something.Controller::action', 'backend' => true) ));
但您应该 查看类中的文档块以了解更多信息,了解如何添加新的下拉菜单而不是在 Components 下拉菜单下添加链接,或如何直接将链接添加到导航栏。
如果您想的话,可以添加后端首页链接
\li3_backend\models\NavBar::addBackendHome(array( 'li3_something.Controller::action', 'backend' => true ));
库元素(左侧菜单)
默认情况下,'partial' 和 'backend' 布局加载 'left_column' 元素,该元素通过按此顺序加载元素来为当前组件生成左侧菜单
- 对于当前活动的控制器
<controller>/component- <controller>/<layout>_component - 后端或部分
- 通用组件菜单
component- <layout>_component - 后端或部分
模板覆盖
ComponentController 具有在您的 app 中轻松覆盖模板的渲染路径设置。
此功能使我们能够更改使用 li3_backend 的某些库的视图,而无需更改原始视图,并确保安全地更新库,而无需担心我们自定义的内容会被覆盖。
这是按优先级排列的路径列表
- 模板
<app>/views/<library>/<controller>/<template>.<type>.php<current library>/views/<controller>/<template>.<type>.php
- 布局
<app>/views/layouts/backend/<layout>.<type>.php<li3_backend>/views/layouts/<layout>.<type>.php
- 元素
<app>/views/elements/<library>/<template>.<type>.php<current library>/views/elements/<template>.<type>.php<li3_backend>/views/elements/<template>.<type>.php
如果您的 LITHIUM_APP_PATH 是当前活动库的路径,则名称为当前活动库 <li3_backend> 是 li3_backend 库的路径
示例
将 backend.html.php 添加到 <app>/views/layouts/backend,您将覆盖 li3_backend 的默认布局以进行 backend-component 设置。
加速加载或覆盖资产
因为我们使用 PHP 来返回存储在 li3_backend 或任何其他 li3 库中的公共不可访问的资产,所以我们消耗了服务器时间。
我们可以通过添加正确的目录结构和文件到应用的webtoot中解决这个问题。你必须确保文件路径与assets URL相同。例如,如果你在你的应用webroot中添加assets/backend/css/bootstrap.css,所有后端页面都将将其作为静态文件加载,因为.htaccess配置不会重写指向现有文件的URL。否则,它将通过我们的自定义路由获取文件。
你可以使用相同的技巧来覆盖某些库的assets。