3.13 O Console do CakePHP

Esta seção introduz a linha de comando no CakePHP. Caso você alguma vez precisou acessar suas classes MVC do CakePHP em um cron job ou outro script na linha de comando, esta seção é para você.

O PHP fornece um cliente CLI poderoso que faz com que a interface com o seu sistema de arquivos e aplicações sejam muito mais simples. O Console do CakePHP possui um framework para a criação de shell scripts. O Console utiliza um configuração semelhante a de um dispatcher para carregar um shell ou uma task e tratar seus parâmetros.

Se você pretende utilizar o Console, uma instalação da linha de comando (CLI) do PHP deve estar disponível no sistema.

Antes de aprofundarmos, vamos nos certificar que podemos executar o Console do CakePHP. Primeiramente você precisará carregar um sistema shell. Os exemplos mostrados nesta seção serão em bash, mas o Console do CakePHP também é compatível com o Windows. Vamos executar o programa Console pelo bash. Este exemplo assume que o usuário está logado em uma linha de comando bash e que está na raíz da instalação do CakePHP.

Você pode executar o Console utilizando algo assim:

$ cd /my/cake/app_folder
$ ../cake/console/cake

Mas a utilização recomendada é adicionar o diretório do Console no PATH, desta maneira você pode utilizar o comando cake em qualquer lugar:

$ cake

Executar o Console sem argumentos exibe a mensagem de ajuda:

Hello user,
 
Welcome to CakePHP v1.2 Console
---------------------------------------------------------------
Current Paths:
 -working: /path/to/cake/
 -root: /path/to/cake/
 -app: /path/to/cake/app/
 -core: /path/to/cake/
 
Changing Paths:
your working path should be the same as your application path
to change your path use the '-app' param.
Example: -app relative/path/to/myapp or -app /absolute/path/to/myapp
 
Available Shells:
 
 app/vendors/shells/:
         - none
 
 vendors/shells/:
         - none
 
 cake/console/libs/:
         acl
         api
         bake
         console
         extract
 
To run a command, type 'cake shell_name [args]'
To get help on a specific command, type 'cake shell_name help'

A primeira informação exibida está relacionada aos caminhos. Isto é muito útil se você estiver executando o Console de diferentes partes do sistema de arquivos.

Muitos usuários adicionam o Console do CakePHP ao PATH do sistema para que ele possa ser acessado facilmente. Exibindo o caminho dos diretórios working, root, app e core permite que você veja onde o Console irá executar as alterações. Para alterar o diretório app que você deseja trabalhar, você pode informar o caminho como primeiro argumento do comando cake. Este próximo exemplo mostra como especificar o diretório app, assumindo que você já adicionou o diretório do Console ao seu PATH:

$ cake -app /path/to/app

O caminho informado pode ser relativo ao diretório de trabalho atual ou pode ser informado como um caminho absoluto.