Dev (Back & Front)ARTIGO

CakePHP em subdomínio

Olá, Galera! Depois de apanhar um pouquinho do CakePHP pra colocar ele em um subdomínio em meu servidor, achei um tutorial no Bakery ensinando como fazer. Lendo o texto, vi que além da maneira explicada no tutorial de como fazer, existe também uma outra maneira explicada em um dos comentários dos usuários, que também funciona perfeitamente.

Então, a seguir mostrarei como colocar seu CakePHP 1.2 para funcionar em um subdomínio tal como: www.seusite.dominio.com.br

O exemplo do tutorial do Bakery sugere o seguinte:

Tomando como exemplo que a página inicial do seu site seja a página de usuários, você deverá fazer o seguinte:

// dentro do arquivo users_controller.php<br /><br />function view($unique_title){ <br />    $this->set('users', $this->User->findByUniqueTitle($unique_title) );  <br />}<br /><br />// no arquivo /app/config/routes.php<br /><br />Router::connect('/user/*', array('controller' => 'user', 'action' => 'view'));<br /><br />// no arquivo app/config/bootstrap.php <br /><br />$subdomain = substr( env("HTTP_HOST"), 0, strpos(env("HTTP_HOST"), ".") ); <br />if( strlen($subdomain)>0 && $subdomain != "www" ) { <br />    $_GET["url"] = "user/" . $subdomain . "/" . (isset($_GET["url"]) ? $_GET["url"] : ""); <br />}

 
Fazendo isto, ao acessar www.seusite.seudominio.com.br, você será redirecionado para a página principal dos usuários. Lembrando que você deverá também criar seu arquivo de model em app/models/user.php

Agora veremos o segundo exemplo, que foi o que eu achei mais interessante, que ao invés de redirecionar para um controller específico, redireciona o usuário para a página principal do site. Segue abaixo:

 // em seu arquivo /app/config/bootstrap.php<br /><br />$url_parts = explode('.', env('HTTP_HOST'));<br />foreach($url_parts as $part)<br />{<br />    if(!in_array($part, array('www', 'example', 'com')))<br />    {<br />        $ident = $part;<br />    }<br />}

 
Com apenas isto, você já pode usar seu subdomínio com o CakePHP 1.2.

Abraços e até a próxima!

Trabalha com desenvolvimento de sites e sistemas em PHP/MySQL há cerca de 8 anos. Atualmente, desenvolve seus projetos usando frameworks PHP, tais como CakePHP e Laravel, preferindo Laravel devido às suas atualizações e ao código fácil, consistente e leve. Além de meu blog (http://billjr.com.br), mantém um site (http://billtec.com.br) onde, além de oferecer serviços, testa suas experiências e descobertas com o Laravel. Nas horas vagas, como bom Nerd, assiste a filmes, séries e animes, e lê bons livros. Siga no Twitter @billjr.

Ver perfil