0

kohana サイトに追加したい独自のクラスとビュー ファイルを持つ小さなアプリがあります。このアプリを my sub_app と呼びます。したがって、sub_app を kohana アプリのルートに配置すると、www.kohanaapp.com/sub_app/ でこのアプリにアクセスできます。

現在、sub_app 内では、Kohana アプリで定義されているクラスを使用できません。sub_app の index.php にすべてのクラスをロードする方法はありますか。

また、codeigniter には、私が望むサードパーティ パッケージがあります。コハナで似たようなものはありますか?

4

4 に答える 4

1

コハナカスケードファイルシステムの原則に従って、sub_appクラスファイルをAPPPATH . 'classes'/application/classes/)フォルダに配置し、名前を変更するだけです。

例えば:

/application/
 classes/
  sub/
   class.php

class.phpファイルは次のようになります:

class Sub_Class {}

sub_app次に、次のようなクラスを使用できます$class = new Sub_Class;

于 2013-01-16T12:20:32.573 に答える
1

Kohana はKohana::find_file()、外部ライブラリ コードをロードするために使用します。次に例を示します。

http://kohanaframework.org/3.2/guide/kohana/autoloading#include-zends-autoloader-in-your-bootstrap

通常、サードパーティ ライブラリを に配置しapplication/vendor、コントローラー メソッド内で次のようにアクセスします。

// Load the library's feed.class.php file
require Kohana::find_file('vendor', 'rss-php/feed.class');

ただし、アプリケーション ルートより上のディレクトリからコードを読み込もうとしたことはありません。また、Kohana がクラス ファイルを見つけられるかどうかもわかりません。

Kohana::find_file()次のように、でそれらをロードしようとすることができます。

// Load classes/autoload.php from two directories above application
require Kohana::find_file('../../classes', 'autoload');

DOCROOTまたは、あなたのベースである に基づいて単に必要ですsub_app:

require DOCROOT
      . '..' . DIRECTORY_SEPARATOR
      . 'classes' . DIRECTORY_SEPARATOR
      . 'autoload.php';
于 2013-01-15T16:51:46.303 に答える
1

のオートローダーを定義sub_appして、のどこかに登録できbootstrap.phpます。

// find autoloader function/class in vendor/sub_app/ directory
require_once Kohana::find_file('vendor', 'sub_app/autoloader');

// register autoloader::load() function as autoloader
spl_autoload_register(array('autoloader', 'load'));

そのオートローダーに手動でクラスを含める必要があることに注意してください。

于 2013-01-17T07:13:03.103 に答える
0

ディレクトリ構造に別の「アプリケーション」フォルダを追加する必要があるようです。次の提案を検討してください。

kohana
--application //www.kohanaapp.com--bootstrap.php-。htaccess の
場合


--subapp // www.kohanaapp.com/sub_app/
---bootstrap.php->
ここで編集

 Kohana::init(array(
    'base_url'   => '/kohanaapp/sub_app',
    'index_file' => FALSE
 ));

---.htaccess
      here edit:
      RewriteRule .* /kohanaapp/subapp/index.php/$0 [PT]
于 2013-01-16T14:49:37.450 に答える