O que é Magento e-commerce

Magento é um sistema open source de e-commerce (lojas virtuais) desenvolvido na linguagem de programação PHP.

Possivelmente, é o sistema mais completo para lojas virtuais de livre distribuição (open source).

Qualquer pessoa com conhecimento avançado de programação pode utilizar Magento para desenvolver uma loja virtal. Por ser um sistema grande, desenvolvido em cima de um dos maiores frameworks de PHP, o Zend, apresenta uma arquitetura complicada e lenta para desenvolvedores com pouca experiência em grandes sistemas e servidores.

Sua arquitetura é MVC, baseada em módulos e de fácil expansão. Possuí uma grande comunidade de desenvolvedores em todo mundo.

Existem diversas opções para lojas virtuais em PHP, além do Magento. OpenCart, osCommerce, PrestaShop, VirtueMart e outros.

Para download do Magento, você pode acessar o site do projeto e realizar download: http://www.magentocommerce.com/

Alguns exemplos de lojas em Magento:

Trabalhando com Hooks no Codeigniter

Os Hooks no Codeigniter são uma ótima ferramenta para que você possa modificar o funcionamento do framework sem mexer nos arquivos de core do sistema. Quando o Codeigniter é executado, ele inicia uma série de processos de acordo com o fluxo do aplicativo.

Com os Hooks, é possível criar ações para serem executadas em um estágio específico da aplicação. Um exemplo prático, é caso você queira executar uma ação após o Codeigniter carregar o construtor do controller.

Abaixo listamos todos os processo que podem ser interceptados, e qual o momento que cada é executado:

  • pre_system
    É chamado bem cedo durante a execução do sistema. Somente algumas configurações de benchmark e hooks foram carregadas neste momento. Nenhum processo de rotas ou outros foi executado.
  • pre_controller
    Chamado antes de qualquer controller de sua aplicação. Todas as classes de base, rotas e segurança foram executados neste momento.
  • post_controller_constructor
    Chamado depois do controller ser instanciado. Nenhum método do controller foi executado neste momento.
  • post_controller
    Chamado após o controller ser executado.
  • display_override
    Substitui a função _display() do sistema, usado para enviar a página finalizada para o navegador no final da execução do processo. Isso permite que você use a sua metodologia própria de exibição. Note que você vai precisar fazer referência ao superobjeto CI da seguinte maneira: $this->CI =& get_instance(). E depois os dados finalizados estará disponível chamando $this->CI->output->get_output().
  • cache_override
    Permite que você utilize sua própria função, em vez da _display_cache() na classe de saída. Isso permite que você utilize próprio mecanismo de exibição de cache.
  • post_system
    Chamado depois que a página final é processada e enviado para o navegador, no final da execução do sistema.

Para definir um novo Hook, vamos usar o arquivo application/config/hooks.php.
Através desse arquivo, vamos criar um array com os valores que desejamos executar.
Abaixo há um exemplo de como criar essa configuração:

$hook['post_controller_constructor'] = array(
 'class' => 'MeuHook',
 'function' => 'minhaFuncaoHook',
 'filename' => 'MeuHook.php',
 'filepath' => 'hooks',
 'params' => array('cerveja', 'vinha', 'petiscos')
 );

Com essa configuração acima, o Codeigniter tentará instanciar a classe MeuHook, no arquivo application/hooks/MeuHook.php, e executar a função minhaFuncaoHook, logo após o construtor do controller ser criado.

Ela pode ser útil para validação de acesso a este controller, por exemplo.

No caso de você desejar executar vários ganchos (Hooks), é só criar essas configurações em um array bidimensional, conforme abaixo:

$hook['post_controller_constructor'][] = array(
 'class' => 'MeuHook',
 'function' => 'minhaFuncaoHook',
 'filename' => 'MeuHook.php',
 'filepath' => 'hooks',
 'params' => array('cerveja', 'vinha', 'petiscos')
);
$hook['post_controller_constructor'][] = array(
 'class' => 'MeuHook',
 'function' => 'minhaFuncaoHook2',
 'filename' => 'MeuHook.php',
 'filepath' => 'hooks'
);

Não esqueça de habilitar os hooks no arquivos de application/config/config.php do CodeIgniter.

Frameworks PHP

Hoje o PHP tem diversos frameworks que auxiliam no desenvolvimento de projetos WEB. Os mais conhecidos serão listados abaixo. Dentro de alguns dias vamos estar detalhando o funcionamento e indicando matérias para auxiliar no estudo desses frameworks.

Codeigniter:

CodeIgniter é um Framework de Desenvolvimento de Aplicações – um kit de ferramentas – para as pessoas que constroem sites usando PHP. Seu objetivo é dar a você a possibilidade de desenvolver projetos muitos mais rapidamente do que você podia se estivesse escrevendo o código do zero, provendo de um rico conjunto de bibliotecas para tarefas comuns, com uma interface e estrutura lógica simples de acessos àquelas bibliotecas. Code Igniter permite que você mantenha o foco em seu projeto minimizando a quantidade de código necessário para uma dada tarefa.

CakePHP:

CakePHP é um framework escrito em PHP que tem como principais objetivos oferecer uma estrutura que possibilite aos programadores de PHP de todos os níveis desenvolverem aplicações robustas rapidamente, sem perder flexibilidade.

O CakePHP utiliza padrões de projeto conhecidos, tais como ActiveRecord, Association Data Mapping, Front Controller e MVC (Model-View-Controller).

Kohanna:

Kohana é um framework para aplicações web de código aberto, escrito em PHP 5 que adota o padrão MVC. Tem por objetivo ser seguro, leve e fácil de aprender e usar. Ele suporta apenas a versão 5 ou superior do PHP, a fim de fazer pleno uso das melhorias da orientação a objetos dessa versão.

Symfony:

Symfony é um framework web escrito em PHP que segue o paradigma MVC (model-view-controller). Disponível sob a Licença MIT, Symfony é um Software livre.

Yii:

Yii é um framework de alta performance em PHP que utiliza componentes para o desenvolvimento de pequenas/médias/grandes aplicações Web. Permite máxima reutilização de códigos na programação Web e pode acelerar significativamente o processo de desenvolvimento.

Zend:

Zend Framework é um framework para aplicações Web de código aberto, orientado a objetos, implementado em PHP 5 e licenciado como New BSD License. Zend Framework—freqüentemente referido como ZF—é desenvolvido com o objetivo de simplificar o desenvolvimento web enquanto promove as melhores práticas na comunidade de desenvolvedores PHP.

No link http://www.phpframeworks.com/ existe uma tabela de comparação entre os frameworks citados acima, assim como outros que são menos conhecidos. Não há como dizer qual deles é o melhor framework. O desenvolvedor deve escolher qual ele consegue se adaptar e melhor adequar à necessidade.