Reputation:
I've Created an application with these details :
1- zf create project MyApp
2- zf create module admin
3- zf create controller Index 1 admin
MyApp/application/modules/admin/controllers/IndexController.php :
class admin_IndexController extends Zend_Controller_Action
{
public function init()
{
error_reporting(E_ALL);
ini_set('display_errors', 'On');
}
public function indexAction()
{
$aa = new Admin_Model_DbTable_Posts();
}
}
application.ini :
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
MyApp/application/modules/admin/models/DbTable/Posts.php :
class Admin_Model_DbTable_Posts extends Zend_Db_Table_Abstract
{
public function init()
{
}
}
In this point I get the error :
Fatal error: Class 'Admin_Model_DbTable_Posts' not found in /var/www/MyApp/application/modules/admin/controllers/IndexController.php on line 16
and When i put this line on application.ini
resources.modules[] =
And add bootstratp.php in admin folder with these content
class Admin_Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
}
After a long period of requesting , i get this error :
HTTP Error 500 (Internal Server Error): An unexpected condition was encountered while the server was attempting to fulfill the request.
what should i do to make it work?
Upvotes: 0
Views: 4968
Reputation:
I Solved the problem by putting together shawndreck and RokyFord answers . thanks to both of theme . I actually over configed application.ini file . I did the following :
I have Recreated another simple project and it work fine so i compare two project files.
Then i understand that with changing
Zend_Application_Bootstrap_Bootstrap
to
Zend_Application_Module_Bootstrap
and putting resources.modules[] = "admin" in the application.ini , it works .
Upvotes: 0
Reputation: 8519
class Admin_Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
}
should be
class Admin_Bootstrap extends Zend_Application_Module_Bootstrap
{
}
Using Module_Bootstrap should work to provide module assets to your application. I wouldn't make any other changes.
Ignore the previous answer, good advice if you are using none standard setup, but your setup is apparently standard. You may have to capitalize admin in admin_IndexController, but maybe not.
Upvotes: 1
Reputation: 2069
Some helpful tips for you
resources.modules[] = "admin" resources.modules[] = "default"
Make sure that you use double quotation "
and not single quotation '
for string literals in your application.ini file.
If Admin_Model_DbTable_Posts
is not found then the zend_autoloader or the include path is not complete. You can set the zend autoloader to use the fall back option with the following code inside the Bootstrap.ini
protected function _initAutoload() { $autoloader = Zend_Loader_Autoloader::getInstance(); $autoloader->registerNamespace(array('Admin_')); $autoloader->setFallbackAutoloader(true); $autoloader->suppressNotFoundWarnings(false); return $autoloader; }
Hope it helps!
Upvotes: 1