Php 在控制器类中获取用户定义的类
我在zend应用程序中有一个用户定义类(默认) application/library/Custom\u/Custom\u Test.phpPhp 在控制器类中获取用户定义的类,php,zend-framework,bootstrapping,Php,Zend Framework,Bootstrapping,我在zend应用程序中有一个用户定义类(默认) application/library/Custom\u/Custom\u Test.php <?php class CustomTest{ function testFunction($a) { return $a*2; } } ?> 我想在side indexController.php的getvalueAction()中使用它 我已尝试在[生产]的a
<?php
class CustomTest{
function testFunction($a) {
return $a*2;
}
}
?>
我想在side indexController.php的getvalueAction()中使用它
我已尝试在[生产]的application.ini中包含以下行
autoloaderNamespaces.custom = "Custom_"
我不想使用简单的include函数,也不能在getvalueAction()中实例化它。怎么做
- 使用netbeans
- ubuntu 11.10
- 我是新来的zend
<?php
class IndexController extends Zend_Controller_Action
{
public function init()
{}
public function indexAction()
{}
public function getvalueAction() {
$request = $this->getRequest();
$numb = $request->getParam('numb');
$result = Test::testFunction($numb);
$this->view->assign('result',$result);
}
public function inputAction() {
$this->view->assign('action','getvalue');
}
}
Custom_Test.php
<?php
class CustomTest{
function testFunction($a) {
return $a*2;
}
}
?>
在你的ini里
appnamespace = "Custom_"
这门课应该是这样的
Class Custom_Test{
public static function foo(){
return 'hai';
}
}
class Custom_Action_Helper_Test extends Zend_Action_Helper_Abstract
{
public function random()
{
return 'foo';
}
}
然后在任何操作中都可以调用Custom_Test::foo()代码>
在你的ini里
appnamespace = "Custom_"
这门课应该是这样的
Class Custom_Test{
public static function foo(){
return 'hai';
}
}
class Custom_Action_Helper_Test extends Zend_Action_Helper_Abstract
{
public function random()
{
return 'foo';
}
}
然后在任何操作中都可以调用Custom_Test::foo()
从application/library/Custom\u/Custom\u Test.php
到
i、 自定义文件夹中的e Test.php
在application.ini中添加此行,而不是在autoloadernamespace.custom=“custom”
然后,只需在您喜欢的任何地方创建一个实例。从
application/library/Custom\u/Custom\u Test.php更改文件和文件夹的名称。
到
i、 自定义文件夹中的e Test.php
在application.ini中添加此行,而不是在autoloadernamespace.custom=“custom”
然后,只要在您喜欢的任何地方创建它的实例。操作助手就是您所需要的 自从你说 我想在side indexController.php的getvalueAction()中使用它
<?php
class IndexController extends Zend_Controller_Action
{
public function init()
{}
public function indexAction()
{}
public function getvalueAction() {
$request = $this->getRequest();
$numb = $request->getParam('numb');
$result = Test::testFunction($numb);
$this->view->assign('result',$result);
}
public function inputAction() {
$this->view->assign('action','getvalue');
}
}
根据Zend Framework的官方网站
动作助手允许开发人员注入运行时和/或按需操作
扩展到任何操作控制器的功能
Zend_控制器_动作。行动助手旨在尽量减少必要性
扩展抽象动作控制器以注入公共
动作控制器功能
我假设您想要使用action helper,因为action helper是专门为此而设计的
第1步。
您需要告诉助手代理您的操作助手在哪里,我通常在application.ini文件中这样做,但您也可以在frontController或引导文件中这样做
#if you are using application.ini, in your application.ini add the following
resources.frontController.actionHelperPaths.Custom_Action_Helper = APPLICATION_PATH "/../library/Custom/helpers"
第二步:创建Action Helper类时,您必须确保类
扩展Zend\u Controller\u Action\u Helper\u Abstract
,并将文件放在定义的Helper目录中(如果文件是库/自定义/helpers
然后像这样创建动作助手
Class Custom_Test{
public static function foo(){
return 'hai';
}
}
class Custom_Action_Helper_Test extends Zend_Action_Helper_Abstract
{
public function random()
{
return 'foo';
}
}
现在,可以在任何控制器中使用助手。可以使用以下语法调用它
echo $this->_helper->Test->random();
希望这对您有所帮助。行动助手是您所需要的 自从你说 我想在side indexController.php的getvalueAction()中使用它
<?php
class IndexController extends Zend_Controller_Action
{
public function init()
{}
public function indexAction()
{}
public function getvalueAction() {
$request = $this->getRequest();
$numb = $request->getParam('numb');
$result = Test::testFunction($numb);
$this->view->assign('result',$result);
}
public function inputAction() {
$this->view->assign('action','getvalue');
}
}
根据Zend Framework的官方网站
动作助手允许开发人员注入运行时和/或按需操作
扩展到任何操作控制器的功能
Zend_控制器_动作。行动助手旨在尽量减少必要性
扩展抽象动作控制器以注入公共
动作控制器功能
我假设您想要使用action helper,因为action helper是专门为此而设计的
第1步。
您需要告诉助手代理您的操作助手在哪里,我通常在application.ini文件中这样做,但您也可以在frontController或引导文件中这样做
#if you are using application.ini, in your application.ini add the following
resources.frontController.actionHelperPaths.Custom_Action_Helper = APPLICATION_PATH "/../library/Custom/helpers"
第二步:创建Action Helper类时,您必须确保类
扩展Zend\u Controller\u Action\u Helper\u Abstract
,并将文件放在定义的Helper目录中(如果文件是库/自定义/helpers
然后像这样创建动作助手
Class Custom_Test{
public static function foo(){
return 'hai';
}
}
class Custom_Action_Helper_Test extends Zend_Action_Helper_Abstract
{
public function random()
{
return 'foo';
}
}
现在,可以在任何控制器中使用助手。可以使用以下语法调用它
echo $this->_helper->Test->random();
希望这对您有所帮助。您应该使用action helper。参考我的答案来解释这是真的。但我没能解决我的问题(尽管我投了他们一票)。但我会记住这一点您应该使用动作助手。参考我的答案来解释这是真的。但我没能解决我的问题(尽管我投了他们一票)。但我会记住这一点我像你说的那样试过了,但对我不起作用。但是非常感谢,我试过了,就像你说的,但对我不起作用。但是,非常感谢您提供了“resources.frontController.actionHelperPaths.Custom\u Action\u Helper=APPLICATION\u PATH”/../library/Custom/helpers”“提供服务器错误。为什么您在库目录中创建了正确的目录?在库中应该有一个名为Custom的目录,在Custom中应该有另一个名为helpers的目录?你得到的错误信息是什么?你把代码放在哪里?它应该在你的应用程序的[生产]部分。每件事都是你在正确的地方说的。还是不行。但有一个区别是“图书馆”的“图书馆”(L和L)不知道什么是对的?是的,试着给它取个合适的名字。如果您遇到任何错误,请发布错误代码。输入“resources.frontController.actionHelperPaths.Custom\u Action\u Helper=APPLICATION\u PATH”/../library/Custom/helpers“提供服务器错误。为什么您在库目录中创建了正确的目录?在库中应该有一个名为Custom的目录,在Custom中应该有另一个名为helpers的目录?你得到的错误信息是什么?你把代码放在哪里?它应该在你的应用程序的[生产]部分。每件事都是你在正确的地方说的。还是不行。但有一个区别是“图书馆”的“图书馆”(L和L)不知道什么是对的?是的,试试givi