Acessar JSession por fora de um site Joomla!

Bom dia a todos,

O framework CMS Joomla! possui um recurso de sessions muito bacana que é a JSession, para utilizá-la você precisa de uma instância válida da classe factory JFactory. O Joomla! inicia automaticamente esta factory ao iniciar a execução de uma requisição dentro da sua aplicação, mas externamente não.
Para podermos utilizar os recursos do Joomla! através de um diretório externo ao CMS precisamos importar e inicializar as configurações básicas. O código abaixo mostra os includes e a definição das variáveis estáticas necessárias.

A variável _JEXEC é uma variável estática de segurança para evitar que alguem tente acessar algum arquivo diretamente.

Para a variável JPATH_BASE é a referência para o diretório do seu site Joomla! e a variável DS é carregada com o valor da variável estática global do PHP que define o tipo de separador de diretórios, ou seja, no linux utiliza-se “/” e no windows “”.

Para inicializar a aplicação Joomla! precisamos instanciar as classes corretas, para isso temos a codificação abaixo:

Quando este método é chamado todos os métodos (recursos) da classe JFactory ficam disponíveis, como por exemplo:

  • Sessions;
  • DBO;
  • Mailer;
  • Config (referência da configuração do JConfig);
  • Cache handler;

Logo para acessarmos alguns dos recursos podemos fazer assim:

Através dos métodos definidos na JFactory do Joomla! podemos utilizar todos os recursos que a aplicação Joomla! tem, assim podemos reaproveitar o código da estrutura do CMS em outros projetos.

Utilizando a JSession do Joomla!

O controle de sessões do CMS Joomla! é muito seguro e prático, logo porque o próprio CMS possui camadas de gerenciamento do tempo de sessão e validações. Para criarmos uma sessão registrada pelo CMS Joomla! utilizamos o seguinte código.

Espero que tenham gostado, para dúvidas ou sugestões utilizem a área de comentários abaixo.

Um forte abraço e uma feliz páscoa a todos.