/** * Create a classes directory and autoload it. * * @param string $directory * @param OutputInterface $output * * @return $this */ protected function createClassesDir($directory, $output) { File::mkdir($directory . '/app/classes'); File::gitkeep($directory . '/app/classes'); File::replaceOnce($directory . '/app/start/global.php', "app_path().'/models',", "app_path().'/models',\n\tapp_path().'/classes',"); File::replaceOnce($directory . '/composer.json', "\"app/models\",", "\"app/models\",\n\t\t\t\"app/classes\","); $output->writeln('app/classes directory created and autoloaded'); return $this; }
/** * Create all migrations, models, services, validators, and event handlers for auth. * * @param string $directory * @param OutputInterface $output * * @return $this */ protected function createAuthModels($directory, $output) { File::copyIfNone(dirname(__FILE__) . '/../stubs/app/database/migrations/2015_01_01_000000_create_authorize_tables.stub', $directory . '/app/database/migrations/2015_01_01_000000_create_authorize_tables.php'); File::copy(dirname(__FILE__) . '/../stubs/app/models/User.stub', $directory . '/app/models/User.php'); File::copyIfNone(dirname(__FILE__) . '/../stubs/app/models/Role.stub', $directory . '/app/models/Role.php'); File::copyIfNone(dirname(__FILE__) . '/../stubs/app/models/Service/User.stub', $directory . '/app/models/Service/User.php'); File::copyIfNone(dirname(__FILE__) . '/../stubs/app/models/Service/User/Auth.stub', $directory . '/app/models/Service/User/Auth.php'); File::copyIfNone(dirname(__FILE__) . '/../stubs/app/models/Validator/User.stub', $directory . '/app/models/Validator/User.php'); File::copyIfNone(dirname(__FILE__) . '/../stubs/app/models/Validator/User/Auth.stub', $directory . '/app/models/Validator/User/Auth.php'); File::mkdir($directory . '/app/classes/Event'); File::copyIfNone(dirname(__FILE__) . '/../stubs/app/classes/Event/User/Auth.stub', $directory . '/app/classes/Event/User/Auth.php'); File::delete($directory . '/app/classes/.gitkeep'); File::appendOnce($directory . '/app/events.php', "\nEvent::subscribe(new Event\\User\\Auth);\n"); $output->writeln('migrations/models/services/validators/callback-handlers installed'); return $this; }
/** * Configure the controllers and views. * * @param string $directory * @param OutputInterface $output * * @return $this */ protected function configureMVC($directory, $output) { File::delete($directory . '/app/controllers/HomeController.php'); File::delete($directory . '/app/views/hello.php'); File::copyIfNone(dirname(__FILE__) . '/../stubs/app/controllers/IndexController.stub', $directory . '/app/controllers/IndexController.php'); File::put($directory . '/app/controllers/BaseController.php', File::get(dirname(__FILE__) . '/../stubs/app/controllers/BaseController.stub')); File::copyIfNone(dirname(__FILE__) . '/../stubs/app/views/index/index.blade.stub', $directory . '/app/views/index/index.blade.php'); File::copyIfNone(dirname(__FILE__) . '/../stubs/app/views/error/index.blade.stub', $directory . '/app/views/error/index.blade.php'); File::mkdir($directory . '/public/assets/css/controllers'); File::mkdir($directory . '/public/assets/js/controllers'); File::copyIfNone(dirname(__FILE__) . '/../stubs/public/assets/css/controllers/index/index.stub', $directory . '/public/assets/css/controllers/index/index.less'); File::copyIfNone(dirname(__FILE__) . '/../stubs/public/assets/js/controllers/index/index.stub', $directory . '/public/assets/js/controllers/index/index.js'); File::replace($directory . '/app/routes.php', "Route::get('/', function()\n{\n\treturn View::make('hello');\n});", "Route::get('/', 'IndexController@getIndex');\nRoute::controller('index', 'IndexController');"); $output->writeln('mvc configured'); return $this; }