Projeto Básico com Zend Tool

Existem uma série de diferenças na composição de um projeto com o Zend Framework e em cada fonte que se procura, é visto uma solução diferente.

Baseado nas minhas pesquisas, estou anotando abaixo uma sequência inicial para a configuração de um projeto inicial com o Zend Framework.

Estou levando em conta que a Zend Tool já está corretamente configurada no sistema. Então abra o prompt (windows) ou o terminal (mac/linux), navegue até a pasta onde será criado o seu projeto e digite:

zf create project helloworld

A Zend Tool neste ponto deve ter criado a estrutura do seu projeto, mas é necessário fazer algumas adaptações para um melhor aproveitamento e desempenho.

Abra o arquivo public/.htaccess e acrescente esta linha no início do arquivo:

SetEnv APPLICATION_ENV development

Crie uma pasta modules dentro de application, em seguida crie uma pasta default dentro de modules e mova os diretórios controllers e views para dentro dela.

É preciso ajustar algumas configurações antes de testar o seu projeto. Abra o arquivo application.ini e substitua a linha:

resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"

por:

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"

Aproveitando que estamos tratando do frontController, adicione a variável de ambiente.

resources.frontController.env = APPLICATION_ENV

Adicione um include path para a pasta models logo abaixo do include para os arquivos do ZF.

includePaths.library = APPLICATION_PATH "/../library"
includePaths.models = APPLICATION_PATH "/models"

Inclua também o caminho da sua view e o encoding da sua aplicação.

resources.view.basePath = APPLICATION_PATH "/modules/default/views"
resources.view.encoding = "UTF-8"

Teste agora o seu projeto digitando http://localhost/helloworld/public/

Para adicionar um novo módulo, vá até a pasta modules e digite:

zf create module [nome-do-módulo]

Para adicionar um controller e uma view ao módulo digite:

zf create controller [nome_do_controller] 1 [nome-do-módulo]

Isto já é suficiente para ter um projeto básico rodando.

Como configurações adicionais ao application.ini podemos inserir

resources.frontController.controllerDirectory = APPLICATION_PATH "/modules/default/controllers"
resources.frontController.defaultModule = "default"
resources.frontController.baseUrl = "/" 

Mas até o momento não achei necessário utilizar, pois o módulo default sempre vai ser o default, indicar o defaultModule seria útil se decirmos usar outro módulo como padrão. O encoding você precisa estar atento na criação das suas views e quando salvar o seu arquivo. E os demais apontamentos de pastas já são executados normalmente pelo ZF, portanto até agora sem necessidade de indicar.

Instalação do Magento

A instalação do magento é bem fácil de executar, exceto por algumas particularidades que podem acarretar dificuldades no processo e são essas particularidades que pretendo focar nesta anotação.

Faça do download da versão Full Release mais recente em http://www.magentocommerce.com/download, neste momento a mais recente é a 1.4.1.1.

Descompacte e faça o upload dos arquivos para o seu servidor ou para a pasta que será usada no seu localhost.

Enquanto o processo de descompactação e transferência é executado, acesse o seu phpmyadmin e crie uma base de dados, neste momento não precisa se preocupar com o collation pois a própria instalação do Magento toma conta de fazer o setup correto.

Acesse a pasta onde copiou os arquivos do Magento e dê permissão de leitura e escrita (chmod 777) para as seguintes pastas e arquivos:

  • app/etc
  • media e subpastas
  • var
  • var/.htaccess
  • .htaccess

Após copiado todos os arquivos e criada a base de dados acesse pelo seu browser o endereço em que copiou os arquivos de instalação do Magento, algo como http://www.seusite.com.br/magento ou http://localhost/magento e aparecerá a tela inicial da instalação.

Aceite o contrato e clique em continue.

Selecione o País (Locale), Fuso (Time Zone) e Moeda (Default Currency). Caso não tenha feito a ajuste de permissões corretamente, o magento não guardará as opções selecionadas, mas se quiser pode deixar as opções padrão e posteriormente configurar no menu administrativo do Magento. Clique em continue.

Preencha o campo Host. Normalmente usa-se localhost, entretanto alguns provedores utilizam bases de dados com endereços ou números de IP fixo, preencha o campo com esses dados sem o http:// e sem a última barra do endereço.

No campo database digite o nome do banco de dados criado no início do processo, seguido dos campos Username (login) e Password (senha) do banco de dados utilizado. Em Table Prefix pode deixar em branco, mas para efeito de organização da sua base de dados, você pode utilizar um prefixo para as tabelas do Magento como mag_  assim todas as 310 tabelas do magento iniciarão com este prefixo facilitando a visualização do grupo de tabelas.

Na tela seguinte entre com as suas informações pessoais e atente para o endereço de email pois caso perca a sua senha será com ele que poderá recuperá-la. Cadastre o seu Username e Senha mas não utilize o mesmo da base de dados para termos mais segurança no projeto. Confirme a senha  e no campo Encription Key, digite alguma frase ou sequência de caracteres alfanuméricos. Esse campo será usado para as chaves de segurança do Magento. Clique em continue.

Se tudo foi efetuado corretamente você verá a tela de finalização da instalação. Copie e guarde o seu Encryption Key e clique nos botões Go to frontend para ver a sua loja padrão funcionando ou clique em Go to Backend para fazer o login no módulo administrativo.

Neste ponto verifiquei que as instalações em localhost geram alguns problemas como não efetuar o login recarregando a página sem nenhuma mensagem de erro.

Algumas das soluções que encontrei foi:

  • Usar http://127.0.0.1 no lugar de http://localhost/
  • Editar o arquivo app/etc/local.xml alterando a linha

    para

    
    
  • Ou editar o arquivo do core app/code/core/Mage/Core/Model/Session/Abstract/varien.php e comentar o seguinte trecho:
    // session cookie params
    $cookieParams = array(
      'lifetime' = $cookie->getLifetime(),
      'path'     = $cookie->getPath()/*,
      'domain'   = $cookie->getConfigDomain(),
      'secure'   = $cookie->isSecure(),
      'httponly' = $cookie->getHttponly()*/
    );
    

Com isso acredito já ser possível iniciar os trabalhos com a sua instalação do Magento.