Ir para conteúdo

POWERED BY:

Arquivado

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

Fabyo

Zend Framework

Recommended Posts

pow Fabyo, obrigado pela resposta. Acho que o problema era alguma configuração do userdir, tirei o projeto do ~scorninpc e passei ele direto pra raiz /var/www e funcionou, deu pra continuar o tutorial, que por sinal, ta muito bom :o

 

Valeu! =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Comparando com o exemplo anterior, para incluir este plugin não foi adicionado apenas uma linha e sim duas linhas. Eu não entendo justamente a linha bastarda que não foi citada. Poderia me dizer o que ela faz, por favor?

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo

 

Estou estudando os teus tutorias sobre o Zend Framework e tem me ajudado bastante.

 

Só que estou tentando implementar um plugin, só que esta retornando o seguinte erro:

Fatal error: Class 'MeuPlugin' not found in D:\My Dropbox\zend-framework-teste\index.php on line 23

Meu código é o seguinte:

<?php

if(version_compare(phpversion(), 5) === '-1'){
        die('Versão do PHP não compativel');
}

define('DS', DIRECTORY_SEPARATOR);
define('PS', PATH_SEPARATOR);
define('BASEPATH', getcwd() . DS);

set_include_path('.'
        . PS . BASEPATH . 'library' . DS
        . PS . BASEPATH . 'includes' . DS
        . PS . BASEPATH . 'application' . DS . 'controllers' . DS . 'plugins' . DS      
        . PS . BASEPATH . 'application' . DS . 'models' . DS
        . PS . get_include_path());

require_once('Zend/Loader/Autoloader.php');
Zend_Loader_Autoloader::getInstance();

Zend_Controller_Front::getInstance()
	->throwExceptions(false)
	->registerPlugin(new Zend_Controller_Plugin_ErrorHandler())
	->registerPlugin(new MeuPlugin())
        ->setControllerDirectory(BASEPATH . 'application' . DS . 'controllers' . DS)
        ->dispatch();

Salvei meu plugin na pasta:

application/controllers/plugins/MeuPlugin.php

 

Código do plugin

<?php

class MeuPlugin extends Zend_Controller_Plugin_Abstract {
	
	public function init(){
		
		
		
	}
	
}

Fico grato pela sua ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa

 

antes de ver o problema, qual a versão do Zend que voce esta usando?

 

é que mudou algumas coisas nas ultimas versoes como por exemplo o Autoloader

 

Fabyo

 

Estou usando a versão 1.10 do Zend Framework.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou te mostrar um novo jeito, só continue usando seu set_include_path(), eu nao uso porque eu ja configuro direto no PHP.ini ok?

 

<?php
define('APPLICATION_PATH', realpath('.') . '/application');
require_once 'Zend/Loader/Autoloader.php';

Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);

$application = new Zend_Application($env,
   APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()->run();

 

agora tudo esta no application.ini veja um exemplo:

 

[production]
appnamespace = Application

phpsettings.date.timezone = "America/Sao_Paulo"
resources.locale.default = pt_BR

phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
phpSettings.error_reporting = E_ALL
global.autoloadersupresswarnings = false

autoloadernamespaces.0 = Zend_
autoloadernamespaces.1 = ZendX_
autoloadernamespaces.2 = Zend_
autoloadernamespaces.4 = Plugins_

resources.locale.default = pt_BR

resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.baseUrl = BASE_PATH
resources.frontController.plugins = Plugins_Security
resources.frontController.params.displayExceptions = true
resources.frontController.noErrorHandler = 0
resources.frontController.throwerrors = true

includePaths.models = APPLICATION_PATH "/models"

;Layout
resources.layout.layout = "layout"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"

;Views
resources.view.encoding = "UTF-8"
resources.view.basePath = APPLICATION_PATH "/views/"

;Database
resources.db.adapter = "PDO_MYSQL"
resources.db.params.host = "localhost"
resources.db.params.username = "usuario"
resources.db.params.password = "senha"
resources.db.params.dbname = "banco"
resources.db.isDefaultTableAdapter = true

 

como falei é só um exemplo, procure ler o manual do Zend sobre Application, qualquer duvida posta ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

[production]
resources.frontController.plugins = Plugins_Security

Fabyo

Pelo que pude entender, nesta linha é onde você declara qual o plugin que desejo carregar.

 

Posso colocá-los por exemplo na pasta application/controllers/plugins.

 

Grato pela sua ajuda, foi muito útil.

 

Att

Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso mesmo

 

pode colocar a pasta onde você achar melhor, no meu caso eu coloco na raiz da minha root, porque tenho plugin que uso em varias aplicações diferentes, entao nao fico copiando o plugin pra todas as pastas, o plugin fica unico como o caso da pasta Zend.

 

basta configurar o path da sua pasta plugins

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.