0

我正在尝试在 Magento 中 require_once 一个 php 文件,以便我可以使用文件中的函数。无论我将 php 文件放在哪里,或者我尝试在哪里要求它,都会发生相同的错误:

Fatal error: require_once(): Failed opening required 'http://127.0.0.1/ezzence/functions.php' (include_path='C:\wamp\www\ezzence\app\code\local;C:\wamp\www\ezzence\app\code\community;C:\wamp\www\ezzence\app\code\core;C:\wamp\www\ezzence\lib;.;C:\php\pear') in C:\wamp\www\ezzence\app\design\frontend\default\theme317\template\page\html\head.phtml on line 28

PHP 文件只包含一个函数,所以 php 文件本身不是问题。就像 PHP 找不到我的 php 文件一样。我尝试像这样要求它:

<?php require_once($this->getBaseUrl() . 'functions.php');?>

最初我希望该文件位于其中skin/theme/default/inc/,但出于测试目的,我将其移至根目录。

我检查了我的 php.ini 中有 allow_url_fopen = On,但我不知道这是否会影响 require_once 方法。

欢迎任何建议。提前致谢 :)

4

2 回答 2

1

getBaseUrl 函数用于获取 URL 而不是 PATH

Mage::getBaseDir()

此函数返回正确的 magento 安装路径

于 2013-10-09T10:16:53.900 回答
1

您不能通过 http 包含 php 文件。这是错误的:

required once 'http://example.com/some_file.php'

我认为这就是你要找的:

require_once($this->getBaseDir() . 'functions.php'

但这也不是 Magento 的做法。您应该创建一个模块并将函数放在帮助程序中。然后你可以调用函数而不需要这样的require_once语句:Mage::helper('helper_alias_here')->doSomething()

编辑 和有点题外话
如果您以正确的方式使用 Magento,则不需要使用require语句,除非您正在重写控制器类。

于 2013-10-09T10:19:18.370 回答