CakePHP3 でマークダウン機能をつけようとしたと時にエラー
今現在、メモ帳アプリを作成しているのですが、マークダウン機能を実装しようとして、githubからソースコードを落としたのですが、
導入部分ではまってしまった。
githubマークダウンソースコード
https://github.com/ivanamat/cakephp3-markdown/blob/master/README.md
今回はコンポーネントの読み込み部分で
コンポーネントエラーが発生しました。
class MyController extends AppController { public function initialize() { parent::initialize(); $this->loadComponent('Markdown.Markdown'); } }
...or load the component in the array of components. ←これ
class MyController extends AppController { public $components = [ 'Markdown' => [ 'className' => 'Markdown.Markdown' ] ]; }
自分のコード
public function initialize() { parent::initialize(); $this->loadComponent('Paginator'); $this->loadComponent('Flash'); // FlashComponent をインクルード $this->Auth->allow(['tags']); $this->loadComponent('Markdown.Markdown'); } public $components=[ 'Markdown'=>[ 'className' => 'Markdown.Markdown' ] ];
調べてみるとよく自分のコードをみてるとわかるのですが、
$this->loadComponent('Markdown.Markdown');と $components両方ともコンポーネントを呼びだしているためエラーが発生しているのが原因なようです。
スタックオバーフローで聞いてみたところ
コントローラーの $components プロパティによるコンポーネントの呼び出しは非推奨になっているようでloadComponentメソッドを使用たほうが良いようです。
$componentsの箇所を削除したところこのエラーは無事消えました。