如何从 Cakephp 的 webroot 文件中调用 Controller 函数?
How to call Controller function from webroot file in Cakephp?
我想从 webroot 文件中调用控制器函数
我有一个控制器
class AbsController extends AppController {
function testfn($type){
if($type>1) return 'Value is greater than one';
else return 'Value is less than one';
}
}
文件路径为app/webroot/number.php。
在这个文件中,我想调用 testfn
函数。
请告诉我"How can I do this?"
这没有多大意义。按照预期的方式使用框架,而不是做奇怪的事情。做博客教程。这听起来不像您了解如何使用它的基础知识。
如果你非要干坏事和架构看CakePHP文件:index.php。您可能必须复制框架的完整 bootstrap 过程才能在其他地方正确实例化控制器并使其正常工作。还要检查框架调度程序的代码。这就是控制器被实例化的地方。
如果你真的想这样做,使用 curl:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/app/abs/testfn/1");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
但如前所述,我不明白,你为什么要这样做。您是否正在尝试创建一些网络服务或其他东西?如果是这样,CakePHP 有非常好的工具:http://book.cakephp.org/2.0/en/development/rest.html
您可以从查看文件进行请求操作调用。
尝试提出请求并查看答案:cakephp requestAction method View file
$blogs = $this->requestAction('/blogs/index');
echo $blogs;
//or
var_dump($blogs);
在 webroot 文件中,您可以制作获取元素以包含视图文件。
为了在webroot文件中使用controller功能,你需要先在number.php
中加载cakephp bootstrap文件
if (!defined('DS')) {
define('DS', DIRECTORY_SEPARATOR);
}
if (!defined('ROOT')) {
define('ROOT', dirname(dirname(dirname(__FILE__))));
}
if (!defined('APP_DIR')) {
define('APP_DIR', basename(dirname(dirname(__FILE__))));
}
if (!defined('WEBROOT_DIR')) {
define('WEBROOT_DIR', basename(dirname(__FILE__)));
}
if (!defined('WWW_ROOT')) {
define('WWW_ROOT', dirname(__FILE__) . DS);
}
require_once('yourlocalpath/cakephp/lib/Cake/bootstrap.php');
require_once('yourlocalpath/cakephp/app/Controller/AbsController.php');
$user = new AbsController();
$user->testfn('2');
我想从 webroot 文件中调用控制器函数 我有一个控制器
class AbsController extends AppController {
function testfn($type){
if($type>1) return 'Value is greater than one';
else return 'Value is less than one';
}
}
文件路径为app/webroot/number.php。
在这个文件中,我想调用 testfn
函数。
请告诉我"How can I do this?"
这没有多大意义。按照预期的方式使用框架,而不是做奇怪的事情。做博客教程。这听起来不像您了解如何使用它的基础知识。
如果你非要干坏事和架构看CakePHP文件:index.php。您可能必须复制框架的完整 bootstrap 过程才能在其他地方正确实例化控制器并使其正常工作。还要检查框架调度程序的代码。这就是控制器被实例化的地方。
如果你真的想这样做,使用 curl:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/app/abs/testfn/1");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
但如前所述,我不明白,你为什么要这样做。您是否正在尝试创建一些网络服务或其他东西?如果是这样,CakePHP 有非常好的工具:http://book.cakephp.org/2.0/en/development/rest.html
您可以从查看文件进行请求操作调用。
尝试提出请求并查看答案:cakephp requestAction method View file
$blogs = $this->requestAction('/blogs/index');
echo $blogs;
//or
var_dump($blogs);
在 webroot 文件中,您可以制作获取元素以包含视图文件。
为了在webroot文件中使用controller功能,你需要先在number.php
中加载cakephp bootstrap文件if (!defined('DS')) {
define('DS', DIRECTORY_SEPARATOR);
}
if (!defined('ROOT')) {
define('ROOT', dirname(dirname(dirname(__FILE__))));
}
if (!defined('APP_DIR')) {
define('APP_DIR', basename(dirname(dirname(__FILE__))));
}
if (!defined('WEBROOT_DIR')) {
define('WEBROOT_DIR', basename(dirname(__FILE__)));
}
if (!defined('WWW_ROOT')) {
define('WWW_ROOT', dirname(__FILE__) . DS);
}
require_once('yourlocalpath/cakephp/lib/Cake/bootstrap.php');
require_once('yourlocalpath/cakephp/app/Controller/AbsController.php');
$user = new AbsController();
$user->testfn('2');