我正在为税务计算构建一个Magento扩展,我有多个地方需要调用Web服务。出于这个原因,我必须创建一个PHP类,我想创建表单,我可以调用Web服务,所以我有更少的样板代码。以下是我需要从
调用web服务的地方var group = new fabric.Group();
for (var i = 0; i < count; i++) {
var Bid = '#' + i;
var Bheight = $(Bid).height();
var Bwidth = $(Bid).width();
var Btop = $(Bid).position().top;
var Bleft = $(Bid).position().left;
alert(Bleft);
var clipRect = new fabric.Rect({
originX: 'left',
originY: 'top',
height: Bheight,
width: Bwidth,
left: Bleft,
top: Btop,
fill: '#DDD',
opacity: 0.5,
strokeWidth: 0,
selectable: false
});
group.addWithUpdate(clipRect);
}
canvas.add(group);
canvas.centerObject(group);
canvas.renderAll();
我已经创建了几个类并将它们放在\app\code\community\Company\MyModule\Model\Tax\Sales\Total\Quote\Tax.php
\app\code\community\Company\MyModule\Model\Observer.php
文件夹下。当我尝试访问该文件时,我收到以下错误:
异常'异常',消息'警告:include(WebServiceCall.php):无法打开流:
\lib\my_libname\
答案 0 :(得分:0)
对于初学者,您需要了解Magento如何加载文件:
/**
* Set include path
*/
$paths = array();
$paths[] = BP . DS . 'app' . DS . 'code' . DS . 'local';
$paths[] = BP . DS . 'app' . DS . 'code' . DS . 'community';
$paths[] = BP . DS . 'app' . DS . 'code' . DS . 'core';
$paths[] = BP . DS . 'lib';
$appPath = implode(PS, $paths);
set_include_path($appPath . PS . Mage::registry('original_include_path'));
第二件事是文件夹&amp;类名称位置 - Magento正在使用自动加载器,因此您只需调用类:
$object = new My_Class();
这将转化为对:
的调用lib/My/Class.php
如果你在* NIX系统上,那么这都是区分大小写的。
如果您检查自动装带器,您会看到:
$classFile = str_replace(' ', DIRECTORY_SEPARATOR, ucwords(str_replace('_', ' ', $class)));
$classFile.= '.php';
return include $classFile;
所以在你的情况下,路径应该是:lib / My / Libname / ClassName.php