Adamlar benim projede aşağıdaki yapıya sahiptir.
application/
Bootstrap.php
configs/
application.ini
modules/
default/
controllers/
models/
views/
Bootstrap.php
main/
controllers/
UserController.php
forms/
models/
resources/
validate/
views/
scripts/
user/
complete-registration.phtml
index.phtml
register.phtml
Bootstrap.php
rest/
controllers/
LoginController.php
models/
views/
Bootstrap.php
Şimdi soruna. Ben erişmek için cant UserController.php içinde birkaç eylemleri tanımlamıştır. Için, örneğin ben kayıt / / ana / kullanıcı Localhost'a giderseniz ben bu erişim olamaz. Ancak ben o inşaat / ana / kullanıcı Localhost'a göz atın.
Ben ne olabilir hiçbir fikrim yok ama benim vahşi tahminim benim bootstrap.php ile yapılacak olan bir şeydir. While debugging I commented the rest route initialize in the main bootstrap.php and it seemed to work. Ben bu etkilenen düşünüyorum tüm dosyaları verdik. Ben ne olabilir biliyor eğer bu harika olurdu. Zaten bu anlamaya çalışıyorum birkaç gün gibi geçirdim.
Bootstrap.php
<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
// Commenting this seems to make the module auto initializing work.
protected function _initRestRoute()
{
$this->_logger->info('Bootstrap ' . __METHOD__);
$this->bootstrap ( 'frontController' );
$frontController = Zend_Controller_Front::getInstance ();
//$restRoute = new Zend_Rest_Route ( $frontController );
//$frontController->getRouter ()->addRoute ( 'default', $restRoute );
$restRoute = new Zend_Rest_Route($frontController, array(), array('rest'));
$frontController->getRouter ()->addRoute('rest', $restRoute);
}
}
Main/Bootstrap.php
<?php
class Main_Bootstrap extends Zend_Application_Module_Bootstrap
{
}
Main/controllers/UserController.php
<?php
class Main_UserController extends Zend_Controller_Action
{
protected $_model;
public function init()
{
// Get the default model
$this->_model = new Main_Model_User ();
// Add forms
$this->view->registerForm = $this->getRegistrationForm ();
}
public function indexAction()
{
}
public function registerAction()
{
}
public function completeRegistrationAction()
{
$request = $this->getRequest ();
if (! $request->isPost ())
{
return $this->_helper->redirector ( 'register' );
}
if (false === $this->_model->registerUser ( $request->getPost () ))
{
return $this->render ( 'register' );
}
}
public function getRegistrationForm()
{
$urlHelper = $this->_helper->getHelper ( 'url' );
$this->_forms ['register'] = $this->_model->getForm ( 'userRegister' );
$this->_forms ['register']->setAction ( $urlHelper->url (
array (
'controller' => 'user',
'action' => 'complete-registration'
),
'default' ) );
$this->_forms ['register']->setMethod ( 'post' );
return $this->_forms ['register'];
}
}
application.ini
[production]
autoloadernamespaces[] = "Zend_"
autoloadernamespaces[] = "SB_"
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
; front controller
resources.frontcontroller.moduledirectory = APPLICATION_PATH "/modules"
; modules
resources.modules[] =
resources.frontController.params.displayExceptions = 1
resources.db.adapter = "PDO_MYSQL"
resources.db.isdefaulttableadapter = true
resources.db.params.dbname = "****"
resources.db.params.username = "*****"
resources.db.params.password = "*******"
resources.db.params.host = "*******"
resources.db.params.charset = "UTF8"
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1