0

私は非正統的なことをしようとしています。1 つのディレクトリ内に 2 つの cakePHP インストールがあります。あるアプリ インストールから別のアプリ インストールにモデルを拡張することは可能ですか?

これは私のディレクトリ構造がどのように見えるかです:

app1
  app
    model
      * app1Model
    view
    controller
  libs
  plugins
  ventors

app2
  app
    model
      * app2Model (I want to extent this model with app1Model)
    view
    controller
  libs
  plugins
  ventors

app2Model で app1Model を拡張したい。

4

1 に答える 1

2

あなたは確かにできます!あなたが探しているのはですApp::build()。を使用すると、Cakeに他のディレクトリを検索させることができますApp::uses()。たとえば、次のようにモデルにパスを追加できます。

// assuming your app is under `/var/www`
App::build(array(
  'Model' => array(
    '/var/www/app1/app/model'
  )
));

あなたはApp::build()Cakeに「私が使うときはApp::uses()、ここでもクラスを探してください」と言っています。上記のコードをapp2のブートストラップファイルに配置して、「ケーキにもモデルを探します/var/www/app1/app/model

現在app2では、次を使用します。

App::uses('app1Model', 'Model');

とという名前のモデルの両方を検索しapp2/app/modelます。ドキュメントに示されているように、コントローラーやプラグインなどの他のものを指すために使用することもできます。/var/www/app1/app/modelapp1ModelApp::build()

競合する名前に注意してください。見た目からは、代わりにプラグインの作成を検討することをお勧めします。

于 2013-01-31T00:48:45.157 に答える