Ir para conteúdo

POWERED BY:

Arquivado

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

[VAZA]

Módulos no Zend

Recommended Posts

Pessoal, eu estou criando módulos chamados default e admin

 

se eu tentar acessar: http://localhost/segs, ele entra no meu default sem problemas

agora, se eu tentar acessar http://localhost/segs/admin, ele me ret---a o seguinte erro:

 

exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (segs)' in C:\xampplite\htdocs\SEGS\library\Zend\Controller\Dispatcher\Standard.php:241 Stack trace: #0 C:\xampplite\htdocs\SEGS\library\Zend\Controller\Front.php(934): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 C:\xampplite\htdocs\SEGS\index.php(47): Zend_Controller_Front->dispatch() #2 {main}

 

 

E o pior, é que acontece o mesmo erro se eu acessar: http://localhost/segs/default

 

Segue abaixo foto da estrutura dos meus diretórios, o conteudo da index.php e o conteudo do meu .htaccess dentro do diretorio raiz do meu projeto(/segs):

 

Minha estrutura:

Imagem Postada

 

 

 

Meu .htaccess:

# Rewrite Engine config

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule !\.(gif|jpg|png|css|js|controller.php|tpl|trans.php|service.php)$ index.php

 

# Coloca UTF-8 como charset padrao

AddDefaultCharset utf-8

 

# Desabilita a auto insercao de escapes (\)

php_flag magic_quotes_gpc off

 

# Desabilita as Variaveis globais

php_flag register_globals off

 

 

 

Minha index.php:

//Define Control of Errors

error_reporting(E_ALL|E_STRICT);

ini_set('display_errors','on');

 

//Define Application Configuration

setlocale(LC_ALL, 'BRA');

date_default_timezone_set('America/Sao_Paulo');

//Define Charset

header('Content-type: text/html; charset=UTF-8');

 

//Define Application Path

define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/application/'));

 

//Set Path

set_include_path('.' . PATH_SEPARATOR . './library'

. PATH_SEPARATOR . './application/modules/admin/models'

. PATH_SEPARATOR . './application/modules/admin/views/scripts/'

. PATH_SEPARATOR . get_include_path());

 

//Include AutoLoad

require_once "./library/Zend/Loader.php";

Zend_Loader::registerAutoload();

 

$post = new Zend_Filter_Input(NULL,NULL,$_POST);

$post->setDefaultEscapeFilter(new Zend_Filter_StringTrim());

 

$get = new Zend_Filter_Input(NULL,NULL,$_GET);

$get->setDefaultEscapeFilter(new Zend_Filter_HtmlEntities(ENT_COMPAT, 'UTF-8'));

 

Zend_Registry::set('post', $post);

Zend_Registry::set('get', $get);

 

 

//Setup The Frontcontroller

$f = Zend_Controller_Front::getInstance();

 

$f->setModuleControllerDirectoryName ( 'controllers' );

$f->addModuleDirectory ( APPLICATION_PATH . '/modules' );

$f->throwExceptions(TRUE);

 

 

//Dispatch

//RUN The Application

try {

$f->dispatch();

}catch (Exception $e){

echo $e;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

você esta confundindo

 

modulo seria isso:

 

http://localhost/segs/

http://localhost/admin/

 

do jeito que você fez:

 

http://localhost/segs/admin

 

ele espera um controller admin dentro da pasta segs, ou seja você teria que criar um arquivo AdminController.php e colocar dentro da segs

 

se você criar modulos mesmo você teria as pastas separadas e acessaria cada modulo pelo indexController.php

 

exemplo:

 

 

segs/
controllers
	IndexController.php

admin/
controllers
	IndexController.php

 

deu pra entender?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, sem querendo ser chato mas já sendo.

me mostre como seria sua estrutura de pastas, sendo que você desejaria separar a parte administrativa da parte default do site...por favor...

eu to batendo a cabeça :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa...agora o erro modificou:

 

'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller class ("Admin_IndexController")

 

O q pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK

 

só lembrando eu posso separar mesmo como se fosse um modulo, ou posso separar só que usando arquivos

 

vou mostrar os 2 exemplos:

 

no exemplo sem modulo eu acesso assim:

 

 

 

agora em modulos ficaria assim:

 

 

 

e to postando os exemplos, nada melhor com exemplos reais, ja testei ta tudo ok, só voce fazer o download e incluir a pasta library

 

normal.zip

modulos.zip

 

qualquer duvida posta ai

 

OBS: o seu erro é que você tem o arquivo IndexController.php e dentro dele você tem que definir assim:

class Admin_IndexController extends Zend_Controller_Action

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo..obrigadao pela ajuda.

A forma q você fez deu certo, muito obrigado.

Só que dessa forma, eu fiquei preocupado de como organizar meu site.

pq na parte de admin, eu terei um controller de Noticias, Blogs, Enquestes, etc

dai no caso do modulo normal q você fez, eu teria que coloar tudo dentro da IndexController, correto?

dai eu teria que fazer na IndexController:

function noticiasaddAction;

function noticiaseditAction;

function blogsaddAction;

function blogseditAction...etc..correto?

 

e dentro da view->scripts, eu tereia que fazer: noticiasadd.phtml, noticiasedit.phtml..e assim por diante..estou correto?

eu acho q assim ficaria meio desorganizado..na minha opinião....acho q nao era por esse modo de pensar q eu estava quebrando a cabeça

sobre class Admin_IndexController extends Zend_Controller_Action, eu consegui e deu certo!! :D

Olha a minha estrutura como esta agora:

 

Imagem Postada

 

Note que eu separei a área Default do site da parte administrativa...

 

Dai eu fiz aquilo q você tinha me falado..dentro da IndexController.php, coloquei o seguinte codigo:

 

class Admin_IndexController extends Zend_Controller_Action

 

Cara..obrigadão..se nao fosse você eu nao teria conseguido!!! muuuuuuito obrigado :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao você ainda ta pensando errado do jeito que você imaginou sem modulos

 

eu teria que coloar tudo dentro da IndexController, correto?

Errado

 

você teria no caso cada arquivo pra isso e nao metodos exemplo:

 

NoticiasController.php

blogsController.php

AdminController.php

 

e dai sim em cada arquivo você teria os metodos dele exemplo:

 

NoticiasController.php
indexAction
AddAction
DeletarAction
EditarAction

blogsController.php
indexAction
AddAction
DeletarAction
EditarAction

AdminController.php
indexAction
AddAction
DeletarAction
EditarAction

 

deu pra entender?

 

de qualquer jeito ficaria sim organizado, só que em modulos mesmo você tem a vantagem de colocar ou retirar uma pasta ficando mais rapido incluir ou retirar modulos

Compartilhar este post


Link para o post
Compartilhar em outros sites

dai nesse caso, na views-> scripts eu teria a seguinte estrutura?

 

views->scripts->noticias->index.phtml

views->scripts->blogs->index.phtml

views->scripts->admin>index.phtml

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza...vlw Fabyo.

agora eu vou criar alguns formulários...para ir se acostumando com o Zend.

vou criar os formulários pelo Zend_Form.

 

Vlwwwww

Compartilhar este post


Link para o post
Compartilhar em outros sites

fabyo, esse exemplo em zip já é com utilizaçao do zend 1.8?

 

Abraço!

 

ps: nao sei se lembra de mim mas eu te enchi muito o saco pra aprender zend e depois de uns problemas de saúde estou de volta! abraço!

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.