[英]How can I use my own external class in CakePHP 3.0?
我正在CakePHP 3.0中創建一個應用程序,在這個應用程序中我想使用我編寫的php類繪制數據的SVG圖。 在CakePHP 3項目中使用這個類的正確方法是什么?
進一步來說:
命名約定是什么? 我需要使用特定的命名空間嗎?
我在哪里放置包含PHP類的文件?
如何包含它並在控制器或視圖中使用它?
命名約定是什么? 我需要使用特定的命名空間嗎?
您的SVG圖表類應具有名稱空間。 對於名稱空間,您可以查看http://php.net/manual/en/language.namespaces.rationale.php
我在哪里放置包含PHP類的文件?
在供應商中按作者創建文件夾(這可能是您的名字,因為您是作者)
然后在其中創建你的類約定是vendor / $ author / $ package。 你可以閱讀更多http://book.cakephp.org/3.0/en/core-libraries/app.html#loading-vendor-files
如何包含它並在控制器或視圖中使用它?
a)包括:
require_once(ROOT .DS。'供應商'.DS。'MyClass'。DS。'MyClass.php');
(用你的filename.php替換你的foldername和MyClass.php的MyClass)
b)使用它 :
添加use MyClass\\MyClass;
在你的控制器中
例如,我想在控制器中添加MyClass。 對我有用的步驟
namespace MyClass;
在MyClass.php的頂部 MyClass.php有以下代碼,例如:
namespace MyClass;
class MyClass
{
public $prop1 = "I'm a class property!";
public function setProperty($newval)
{
$this->prop1 = $newval;
}
public function getProperty()
{
return $this->prop1 . "<br />";
}
}
添加use MyClass\\MyClass;
在控制器的頂部
然后將它包含在我的控制器動作中。 我的動作樣本
public function test() { require_once(ROOT .DS. "Vendor" . DS . "MyClass" . DS . "MyClass.php"); $obj = new MyClass; $obj2 = new MyClass; echo $obj->getProperty(); echo $obj2->getProperty(); exit; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.