Criação de projetos customizáveis
Vendo o post do MouseCaneta sobre traduzir o template do Bake fiquei um pouco intrigado, ele estava fazendo modificações dentro do /cake/console/libs/templates/skel para que nos próximos projetos ele não tenha re-trabalho. Vendo por este lado, é um esforço justificável, seria interessante eu poder modificar alguma View, ou mesmo já fazer uma seleção de extensões que normalmente uso, etc. e sempre que eu começar um projeto eu já ter todas essas modificações em mãos. O problema está em mexer na pasta /cake. Eu nunca mexo na pasta Cake (enquanto eu ainda não sou um commiter do CoreTeam =D) e o motivo disto é que se por algum acaso eu venha atualizar minha versão do framework, eu não fico dependente. Por isso, li um pouco o código do BakeShell e descobri a solução.
joaojose@bisorrao:~/projetos/cake$ cp -r cake/console/libs/templates/skel/ vendors/shells/templates/skel joaojose@bisorrao:~/projetos/cake$ ls vendors/shells/templates/skel/ total 16 -rw-r--r-- 1 joaojose users 1302 2009-01-30 14:39 app_controller.php -rw-r--r-- 1 joaojose users 1357 2009-01-30 14:39 app_helper.php -rw-r--r-- 1 joaojose users 1273 2009-01-30 14:39 app_model.php drwxr-xr-x 3 joaojose users 135 2009-01-30 14:39 config drwxr-xr-x 3 joaojose users 50 2009-01-30 14:39 controllers -rw-r--r-- 1 joaojose users 963 2009-01-30 14:39 index.php drwxr-xr-x 3 joaojose users 16 2009-01-30 14:39 locale drwxr-xr-x 4 joaojose users 40 2009-01-30 14:39 models drwxr-xr-x 2 joaojose users 18 2009-01-30 14:39 plugins drwxr-xr-x 5 joaojose users 46 2009-01-30 14:39 tests drwxr-xr-x 6 joaojose users 56 2009-01-30 14:39 tmp drwxr-xr-x 3 joaojose users 19 2009-01-30 14:39 vendors drwxr-xr-x 8 joaojose users 90 2009-01-30 14:39 views drwxr-xr-x 6 joaojose users 126 2009-01-30 14:39 webroot joaojose@bisorrao:~/projetos/cake$ cake bake project novo_projeto -skel /home/joaojose/projetos/cake/vendors/shells/templates/skel/ Welcome to CakePHP v1.2.0.7962 Console --------------------------------------------------------------- App : app Path: /home/joaojose/projetos/cake/app --------------------------------------------------------------- Bake Project Skel Directory: /home/joaojose/projetos/cake/vendors/shells/templates/skel/ Will be copied to: /home/joaojose/projetos/cake/app/novo_projeto --------------------------------------------------------------- Look okay? (y/n/q) [y] > y Do you want verbose output? (y/n) [n] > n --------------------------------------------------------------- Created: novo_projeto in /home/joaojose/projetos/cake/app/novo_projeto --------------------------------------------------------------- Creating file /home/joaojose/projetos/cake/app/novo_projeto/views/pages/home.ctp Wrote /home/joaojose/projetos/cake/app/novo_projeto/views/pages/home.ctp Welcome page created Random hash key created for 'Security.salt' CAKE_CORE_INCLUDE_PATH set to /home/joaojose/projetos/cake in webroot/index.php CAKE_CORE_INCLUDE_PATH set to /home/joaojose/projetos/cake in webroot/test.php Remember to check these value after moving to production server
O procedimento é simples, primeiro eu copiei o Skeleton comum do Cake para a pasta /vendors/shells/templates/skel (só para ter um poonto de partida). Fiz as alterações que queria, executei o ProjectTask do BakeShell passando o nome do meu novo projeto e o parâmetro “-skel” com o caminho onde armazenei meu Skeleton modificado. Depois disso é mamão com açúcar.
Tags: bake, shell




