shama / oven
一个 CakePHP 2 重制器和 CMS 插件
Requires
- php: >=5.3
- shama/baton: *
This package is not auto-updated.
Last update: 2024-09-14 13:30:20 UTC
README
一个 CakePHP 2 重制器和 CMS 插件
BETA / 警告
Oven 目前处于 BETA 版本。我希望得到社区对这个项目的看法和反馈。可以打开一个 issue,在 twitter 上找到我或者在 irc #cakephp 上以 shama
为名。
这意味着功能将会改变,这个插件可能会 破坏你的代码。你已经收到警告。
这是什么?
Oven 是一个 CakePHP 插件,允许你从一个单一的 json 配方 文件中构建整个应用程序。它允许你像平常一样编辑你的应用程序,并在需要时重新烘焙,而不会覆盖你的代码。它还包括一个易于覆盖的脚手架/CMS,由你的配方文件控制。
一行安装(需要 git)
curl https://raw.github.com/shama/oven/master/Console/install.sh | bash -s NewCakeApp
使用 git 下载最新的 CakePHP 和 Oven。将 NewCakeApp
替换为你想要安装到的文件夹名称或删除以在当前工作文件夹中安装。
手动安装
如果这不起作用,或者你更喜欢手动操作,那么只需下载或...
git clone git://github.com/shama/oven.git Plugin/Oven && cd Plugin/Oven && git submodule update --init
在 CakePHP 2.x 应用程序中。在 app/Config/bootstrap.php
中启用插件并运行命令 ./Console/cake oven.init
。
使用方法
初始化
oven.init
命令将设置你的 Config/core.php
和 Config/database.php
文件(如果它们尚未定制)。建议在安装 Oven 后运行此命令以初始化你的应用程序。
./Console/cake oven.init
配方烘焙
Oven 使用 Config/oven.json
作为配方来构建你的应用程序。在编辑配方后,运行命令
./Console/cake oven.bake
如果你想让 Oven 持续监视你的配方更改,则运行命令
./Console/cake oven.watch
合并类
Oven 的核心是一个很棒的 PhpBaker 库。它可以将任何 PHP 类转换为数组。一旦一个类被表示为数组,我们就可以像操作数组一样操作文件。使用这种方法,我们可以使用命令轻松地合并两个类
./Console/cake oven.merge Controller/CommentsController Controller/NewCommentsController
将 CommentsController 中的属性和方法合并到 NewCommentsController 中。任何冲突都将使用第二个声明的类。
CMS
控制器
Oven 包含了一个无障碍的 CMS。当你需要时使用它,或者当你只想部分使用它时覆盖它。要使用 CMS,你的控制器应该扩展 Oven.BasesController
。这将自动根据你的配方设置 CRUD。
你的控制器可以非常简单,如下所示
<?php
App::uses('BasesController', 'Oven.Controller');
class PagesController extends BasesController {
}
使用这种方式,如果你访问 example.com/admin/pages
,你将能够查看、添加、编辑和删除你的页面。通过编辑 Config/oven.json
文件来修改视图中的模式或字段。
视图
如果你想要自定义管理视图,请像在 CakePHP 中一样设置它们(app/View/Pages/admin_edit.ctp
)。Oven 将检测它们并使用你的视图而不是核心 Oven 视图。
核心 Oven 视图使用视图块,你可以部分覆盖它们。例如,如果你想更新 admin_edit
上的侧边栏链接,只需创建一个视图,如下所示
<?php $this->extend('Oven./Admin/edit'); ?>
<?php $this->start('sidebar'); ?>
<?php echo $this->Html->link('My Custom Link', '/somewhere'); ?>
<?php $this->end(); ?>
模型
对于你的模型来说,扩展 OvenBase
是一个好的做法,但不是必需的
<?php
App::uses('OvenBase', 'Oven.Model');
class Page extends OvenBase {
}
这仅适用于某些自定义字段类型,例如 file
和 slug
。
认证
默认情况下,Oven 中没有实现认证。处理认证应由您自己负责。尽管为了方便起见,如果您的应用程序使用CakeDC Users 插件,Oven 将会自动为您设置认证(除非您已经有了自定义的认证方案)。
愿望清单
- 制作一个展示 Oven 的视频
- 创建自定义字段类型的说明/帮助
- 使用不同视图类型的说明/帮助
- 检测现有 CakePHP 是否通过 install.sh 安装
- 以核心 CakePHP 模板作为起点进行合并
- 在 recipe 网站上构建 recipe(使用 plugins.cakephp.org?)然后安装它
将默认主题升级到 bootstrap 2- 将 ckeditor 字段类型放入自己的仓库中,并使用更轻量级的解决方案
- 制作默认文件管理器
- 多菜谱
- 插件烘焙
- Croogo 集成
许可证
版权 2012 Kyle Robinson Young。在MIT 许可证下发布。