Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ademirs

[Resolvido] MVC PHP - Actions

Recommended Posts

Olá amigos, bom dia.

Venho mais uma vez compartilhar algo com vocês.

Estou eu, novato em MVC PHP, depois de gostar do modelo e estar entendendo, estou eu apanhando das diretivas de servidores web.

Uso servidor local (Apache), em programação estruturada nunca tive problemas, mas estou tendo agora com as actions do MVC em servidores web.

 

Preciso utilizar os recursos abaixo, mas dizem que não é possível liberar tudo que eu preciso, dai, minha aplicação não roda...afffff.

 


RewriteEngine on, RewriteCond –f e –d e RewriteRule (para o .htacces)

No http.conf do apache precisa estar ativo as linhas:

LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule rewrite_module modules/mod_rewrite.so
AllowOverride All

No php.ini precisa ativar o PDO

extension=php_pdo.dll
extension=php_pdo_mysql.dll

 

Não posso migrar para um Cloud, por exemplo, a maioria não vai aceitar sabe $$.

Tempo estudando, montando um modelo e que decepção...

 

Talvez eu esteja muito errado, sim porque não, por isso peço uma orientação do que poderia estar sendo feito para corrigir tais restrições em minha aplicação para que rode em todos os Servidores Web (formas alternativas - e corretas claro). Para segurança no MVC estou usando PHPIDS.

 

Aguardo uma orientação dos amigos.

 

Abraço,

Compartilhar este post


Link para o post
Compartilhar em outros sites

quais os requisitos do seu sistema e quais as restrições que encontrou nos hosts em que tentou usar ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o problema na realidade?

 

Fazer esse htaccess funcionar? Você pode ver se o servidor habilita esse módulos para você, basta que argumente seus pontos.

 

Mas, na real, eu acho que o bom sistema deve trabalhar independente das configurações do servidor.

 

Claro, o MÍNIMO de exigência de configuração você deve fazer, como por exemplo versão mínima do PHP ou módulo Rewrite ativo.

 

Agora tornar o seu sistema DEPENDENTE de recursos não muito comuns, é um problema, já que alguns servidores (para não dizer a maioria) são relutantes em habilitar recursos desativados desde... sempre.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é que em um "determinado" Servidor, ele não encontra o meu Model.

Utilizo o

function __autoload( $file ){}

para chamar sabe.

 

Estou usando o seguinte código no .htaccess:

 

RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

Compartilhar este post


Link para o post
Compartilhar em outros sites

já tive esse problema quando fui hospedar em um servidor na web.

o problema foi que o model (no meu caso foi um helper), a forma como eu declarei nao estava de acordo com o arquivo em questão, um problema de case sensitive.

dê uma debugada no código, e verifique qual model ele não está achando, às vezes é uma letrinha, mas faz diferença.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou verificando essa possibilidade, até então não encontrei nada mas vou continuar para ver se não acho alguma coisa no fonte...

Sei lá...estranho isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahhhhh.... Quanto a isso, basta deixar de usar __autoload() e usar spl_autoload_register() :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique os caminhos se estão corretos, também tive problemas com o autoload e era questão de paths:

 

Vai uma dica;

 

Tipo no public/index.php


set_include_path('.'
       . PATH_SEPARATOR . realpath('../alguma_coisa')
       . PATH_SEPARATOR . get_include_path()
);

require_once 'classe.php';
spl_autoload_register(array('classe', 'funcao_para_autoload'));

Compartilhar este post


Link para o post
Compartilhar em outros sites

é estranho porque local funciona...habilitei o LoadModule speling_module modules/mod_speling.so local e continuou funcionando...

Compartilhar este post


Link para o post
Compartilhar em outros sites

apenas para testes,

tanto local quanto no host online faça

 

 

test1.php

echo ini_get('include_path'); exit;

deve retornar a lista de include_path

 

 

verifique também se há uma definição para BASEDIR

open_basedir.php

echo ini_get('open_basedir'); exit;

(caso não exista não retornará nada)

Compartilhar este post


Link para o post
Compartilhar em outros sites

referente "include_path", no modo local retornou:

.;C:\diretoriodophp\pear

e on-line:

.:/usr/diretoriodophp/pear

referente "open_basedir", não retornou nada, nem local, nem on-line.

 

quanto ao uso do

spl_autoload_register

sem alterações, ficou na mesma...

 

obs. vou tentar o PATH_SEPARATOR no public index...

 

vou até postar a função do autoload a seguir...

 

       function __autoload($arquivo){
       if (file_exists(DIR_MODELS . $arquivo . '.php'))
           require_once(DIR_MODELS . $arquivo . '.php');
       else if (file_exists(DIR_HELPERS . $arquivo . '.php'))
           require_once(DIR_HELPERS . $arquivo . '.php');
       else
           die("ERRO: MODEL OU HELPER AUSENTE");
       }

 

OBS: Obrigado a todos que estão colaborando...

 

opaaa....descobria qui que o erro está nas paths...só falta descobrir onde...afff

 

* descobri (corrigindo)...

 

estou usando estes caminhos? alguma sugestão?

 

   define('DIR_CONTROLLERS','app/controllers/');
   define('DIR_VIEWS','app/views/');
   define('DIR_MODELS ','app/models/');

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça assim pra debugar:

die("ERRO: MODEL ".DIR_MODELS . $arquivo . ".php OU HELPER ".DIR_HELPERS . $arquivo . ".php AUSENTE");

ficará mais claro onde está o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos, descobri onde estava o erro.

Realmente o erro foi case sensitive. O amigo "Custellinha", estava certo.

Debuguei o fonte e encontrei o problema que estava na chamada dos Models, ou seja, no nome do arquivo mesmo.

 

Agradeço muito a todos que aqui participaram e leram este tópico, aos moderadores também.

Espero que como eu mais alguém possa resolver problemas similares, afinal, neste tópico foram citadas questões muito importantes.

 

Um grande abraço a toda a comunidade, a todos os amigos.

 

Abraços,

 

(Moderador, por favor coloque como RESOLVIDO? OBRIGADO)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.