Antes de nada, gracias por vuestro tiempo,
Estoy empezando con Zend (1.10.3) y para ir cogiendo soltura comencé con un ejercicio simple que liste y muestre por pantalla las siete notas músicales (Do, Re Mi...). El problema es cuando intento crear un objeto desde el modelo, es decir,
$col_notas = new Model_DBTable_Nota();, justo en este punto, me salta el siguiente error;
Cita: Fatal error: Class 'Model_DBTable_Nota' not found in /opt/lampp/htdocs/gui/application/controllers/IndexController.php on line 21
Call Stack
# Time Memory Function Location
1 0.0008 316388 {main}( ) ../index.php:0
2 0.1028 3435688 Zend_Application->run( ) ../index.php:26
3 0.1028 3435688 Zend_Application_Bootstrap_Bootstrap->run( ) ../Application.php:366
4 0.1030 3435860 Zend_Controller_Front->dispatch( ) ../Bootstrap.php:97
5 0.1282 4398100 Zend_Controller_Dispatcher_Standard->dispatch( ) ../Front.php:954
6 0.1371 4673512 Zend_Controller_Action->dispatch( ) ../Standard.php:289
7 0.1373 4676432 IndexController->indexAction( ) ../Action.php:513
He seguido el quickStart de Zend y algunos manuales pero me sigue dando el mismo error. Os pongo la estructura que he seguido en mi proyecto;
Apache;
1.- LoadModule rewrite_module modules/mod_rewrite.so, habilitado
2.- VirtualHost Configurado;
Cita: <VirtualHost *:80>
ServerName gui.local
DocumentRoot /opt/lampp/htdocs/gui/public
SetEnv APPLICATION_ENV production
<Directory /opt/lampp/htdocs/gui/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
3.- /etc/hosts, con una entrada a gui.local 127.0.0.1
Mi proyecto
1.- .htacces (principal)
Cita: RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css|swf)$ index.php
2.- public/.htacces
Cita: SetEnv APPLICATION_ENV production
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
3.- Application.ini
Cita: [production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
phpSettings.date.timezone = "UTC"
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.layout.layoutpath = APPLICATION_PATH "/layouts"
resources.db.adapter = PDO_MYSQL
resources.db.params.host = 127.0.0.1
resources.db.params.username = usuario
resources.db.params.password = pass
resources.db.params.dbname = gui3
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
phpSettings.date.timezone = "UTC"
resources.db.adapter = PDO_MYSQL
resources.db.params.host = 127.0.0.1
resources.db.params.username = usuario
resources.db.params.password = pass
resources.db.params.dbname = gui3
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
phpSettings.date.timezone = "UTC"
resources.db.adapter = PDO_MYSQL
resources.db.params.host = 127.0.0.1
resources.db.params.username = usuario
resources.db.params.password = pass
resources.db.params.dbname = gui3
4.- Bootstrap.php
Código PHP:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initAutoload(){
$moduleLoader = new Zend_Application_Module_Autoloader(array('namespace' => '', 'basePath' => APPLICATION_PATH));
return $moduleLoader;
}
}
4.- IndexControler.php
Código PHP:
class IndexController extends Zend_Controller_Action
{
public function init(){
/* Initialize action controller here */
}
public function indexAction(){
//Título de la vista
$this->view->title = 'Prueba';
$col_notas = new Model_DBTable_Nota(); //Aqui se detiene la ejecución
}
}
5.- ..models/DbTable/Nota.php
Código PHP:
class Model_DBTable_Nota extends Zend_Db_Table_Abstract
{
public $nota = 'nota';
//Simplemente una prueba para ver si es capaz de crear el objeto
}
Disculpad por el ladrillo . Un Saludo
M.