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。'Vendor '。DS。' MyClass '。DS。' MyClass.php ');
(MyClassをフォルダー名に置き換え、MyClass.phpをfilename.phpに置き換えます)
b)それを使用するには:
コントローラにuse MyClass\MyClass;
を追加します
例コントローラーにMyClassを追加したい。私のために働いたステップ
namespace MyClass;
を追加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;
}