CakePHP支持初始配置/ Web应用程序安装?

时间:2013-12-29 05:05:29

标签: cakephp installation initialization install

我有一个基于CakePHP的网络应用程序需要一些初始配置。我想做相当于mysql源命令来设置一堆表/初始行,然后执行$ this-> User-> save()命令来创建root帐户(我认为这需要通过代码完成,因为它将使用本地安装的CakePHP的salt值,这可能/应该与我的开发机器上的那个不同)等等。

我的hack-y解决方案是在执行此操作的控制器上公开一个公共方法,将浏览器指向它,然后设置填充(通过Configure :: load和Configure :: dump)以便从中获取路由安装完成后,将删除该方法的URL。

CakePHP是否为“安装”Web应用程序提供了任何支持?

我的部分问题是,我在谷歌搜索“CakePHP网络应用程序安装”的尝试都被关于如何安装CakePHP本身的各种教程(等)所掩盖。我的问题不是安装CakePHP,它提供了一种简单安全的方法来设置我的Web应用程序所需的东西(如SQL数据库表等),以满足它的特殊需求。

1 个答案:

答案 0 :(得分:1)

它叫做Cake Schemas ....

您可以在开发环境中执行的最简单操作是从root命令行运行以下命令:

./app/Console/cake schema dump --write filename.sql

它为您提供了SQL文件的转储,然后您可以在使用它之前直接编辑它。

您特别要求运行$this->User->save(),而了解Schema可能有点复杂,您可以通过运行

来完成此操作
./app/Console/cake schema generate

创建schema.php,然后:

App::uses('User', 'Model');
public function after($event = array()) {
    if (isset($event['create'])) {
        switch ($event['create']) {
            case 'users':
                App::uses('ClassRegistry', 'Utility');
                $user = ClassRegistry::init('User');
                $user->create();
                $user->save(
                    array('User' =>
                        array(
                            'username' => 'admin',
                            'role' => 'admin',
                            'password' => 'admin'
                )));
                break;
        }
    }
}

根据需要制作定义,然后运行时:

./app/Console/cake schema create

您的表格会被删除,但会根据您的架构定义和模型文件以及您的特定“后”功能重新制作

http://book.cakephp.org/2.0/en/console-and-shells/schema-management-and-migrations.html