Warning: include_once(Application/Model/Hiring.php): failed to open stream:
No such file or directory in /var/www/hiring/library/Zend/Loader.php on line 146
in the inclusion path
Warning: include_once(): Failed opening 'Application/Model/Hiring.php' for inclusion
(include_path='/var/www/hiring/application/../library:/var/www/hiring/library:./application
/models/:./application/controllers/:./application/views/scripts/:.:/usr/share/php:/usr/local
/ZendFramework/library') in /var/www/hiring/library/Zend/Loader.php on line 146
and my index file is
<?php
// Define path to application directory
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/application'));
// define root path
defined('ROOT_PATH') || define('ROOT_PATH', realpath(dirname(__FILE__) . '/'));
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
// Ensure library/ is on include_path
set_include_path(realpath(dirname(__FILE__) . '/library')
. PATH_SEPARATOR . './application/models/'
. PATH_SEPARATOR . './application/controllers/'
. PATH_SEPARATOR . './application/views/scripts/'
. PATH_SEPARATOR . get_include_path());
require_once 'Zend/Application.php';
require_once 'Zend/Loader/Autoloader.php';
/** Zend_Application */
$loader = Zend_Loader_Autoloader::getInstance();
$loader->registerNamespace('hiring');
$loader->setFallbackAutoloader(true);
Zend_Loader::loadClass('Zend_Controller_Front');
Zend_Loader::loadClass('Zend_Config_Ini');
Zend_Loader::loadClass('Zend_Registry');
Zend_Loader::loadClass('Zend_Db');
Zend_Loader::loadClass('Zend_Db_Table');
Zend_Loader::loadClass('Zend_Db_Statement');
//Zend_Loader::loadClass('Zend_Mail_Transport_Smtp');
//Zend_Loader::loadClass('Zend_Mail_Transport_Sendmail');
//Zend_Loader::loadClass('Zend_Mail');
Zend_Loader::loadClass('Zend_Session_Namespace');
Zend_Loader::loadClass('Zend_Db_Adapter_Pdo_Pgsql');
//Zend_Loader::loadClass('Zend_Date');
Zend_Loader::loadClass('Zend_Log');
// setup controller
$frontController = Zend_Controller_Front::getInstance();
$frontController->throwExceptions(false);
$frontController->setBaseUrl('http://hiring.local');
$frontController->setControllerDirectory('/application/controllers');
// Create application, bootstrap, and run
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()->run();
why iam getting this error i looked into loader.php at line 146 at that line there is
include_once($filename)
so the error is originating from there
There are quite a few problems here:
application/models
,application/controllers
andapplication/views/scripts
should not be on the include path.$loader->registerNamespace('hiring');
should probably be$loader->registerNamespace('Hiring_');
(although there's no sign in the code sample you've included that you are using this namespace).$loader->setFallbackAutoloader(true);
is probably not needed (there's no sign in the code sample you've included that you need this).Zend_Loader::loadClass
lines should be removed. The whole point of an autoloader is that you don't need to then require in or load classes yourselfBut none of these things will affect the problem you are reporting. The standard autoloader setup will only load classes whose name can be mapped directly to the file system (by converting underscores to slashes in the path, e.g. the class
Zend_Db_Table
would live atlibrary/Zend/Db/Table.php
). The classApplication_Model_Hiring
does not fit this model, if you want to use this naming scheme as well you need to also setup a resource autoloader, which maps just the last part of the class name to some pre-defined sub-folders withinapplication/
.Add the following method to your bootstrap class:
This setups up the standard autoloader (
$autoloader = Zend_Loader_Autoloader::getInstance();
), which will autoload the Zend Framework classes. It then registers a namespace 'Hiring', which you only need if you are including classes that start with this name in your library folder.It then creates a separate resource autoloader with the namespace 'Application', which will load classes from the application folder, including models. Assuming the class
Application_Model_Hiring
is defined atapplication/models/Hiring.php
it should then work.More info at http://framework.zend.com/manual/1.12/en/zend.loader.autoloader-resource.html