簡體   English   中英

如何在CakePHP 3.0中使用自己的外部類?

[英]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類的文件?

  1. 在供應商中按作者創建文件夾(這可能是您的名字,因為您是作者)

  2. 然后在其中創建你的類約定是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。 對我有用的步驟

  1. 創建vendor \\ MyClass文件夾
  2. 在該文件夾中粘貼MyClass.php
  3. 添加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 />";
    }
}
  1. 添加use MyClass\\MyClass; 在控制器的頂部

  2. 然后將它包含在我的控制器動作中。 我的動作樣本

      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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM