我有一个基于CakePHP的网络应用程序需要一些初始配置。我想做相当于mysql源命令来设置一堆表/初始行,然后执行$ this-> User-> save()命令来创建root帐户(我认为这需要通过代码完成,因为它将使用本地安装的CakePHP的salt值,这可能/应该与我的开发机器上的那个不同)等等。
我的hack-y解决方案是在执行此操作的控制器上公开一个公共方法,将浏览器指向它,然后设置填充(通过Configure :: load和Configure :: dump)以便从中获取路由安装完成后,将删除该方法的URL。
CakePHP是否为“安装”Web应用程序提供了任何支持?
我的部分问题是,我在谷歌搜索“CakePHP网络应用程序安装”的尝试都被关于如何安装CakePHP本身的各种教程(等)所掩盖。我的问题不是安装CakePHP,它提供了一种简单安全的方法来设置我的Web应用程序所需的东西(如SQL数据库表等),以满足它的特殊需求。
答案 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