2 // vim: foldmethod=marker
4 * Ethna_Plugin_Generator_AppManager.php
6 * @author Masaki Fujimoto <fujimoto@php.net>
7 * @license http://www.opensource.org/licenses/bsd-license.php The BSD License
12 // {{{ Ethna_Plugin_Generator_AppManager
16 * @author Masaki Fujimoto <fujimoto@php.net>
20 class Ethna_Plugin_Generator_AppManager extends Ethna_Plugin_Generator
23 * アプリケーションマネージャのスケルトンを生成する
26 * @param string $manager_name アプリケーションマネージ名
27 * @return bool true:成功 false:失敗
29 function generate($manager_name)
31 $class_name = $this->ctl->getManagerClassName($manager_name);
32 $app_dir = $this->ctl->getDirectory('app');
33 $app_path = "${class_name}.php";
36 $macro['project_id'] = $this->ctl->getAppId();
37 $macro['app_path'] = $app_path;
38 $macro['app_manager'] = $class_name;
40 $user_macro = $this->_getUserMacro();
41 $macro = array_merge($macro, $user_macro);
43 $path = "$app_dir/$app_path";
44 Ethna_Util::mkdir(dirname($path), 0755);
45 if (file_exists($path)) {
46 printf("file [%s] already exists -> skip\n", $path);
47 } else if ($this->_generateFile("skel.app_manager.php", $path, $macro) == false) {
48 printf("[warning] file creation failed [%s]\n", $path);
50 printf("app-manager script(s) successfully created [%s]\n", $path);