2012-01-09 7 views
2

私はKohanaにphpBBライブラリを実装しようとしています。Kohana 3.2 - phpBBライブラリ - 抽象メソッドでの作業

私は私のモジュールで、ベンダーのフォルダを作成し、次のようにライブラリをロードし、それを初期化している:

// Include needed files 
include($phpbb_root_path . 'common.' . $phpEx); 
include($phpbb_root_path . 'config.' . $phpEx); 
include($phpbb_root_path . 'includes/functions_user.' . $phpEx); 
include($phpbb_root_path . 'includes/functions_display.' . $phpEx); 
include($phpbb_root_path . 'includes/functions_privmsgs.' . $phpEx); 
include($phpbb_root_path . 'includes/functions_posting.' . $phpEx); 

I:ライブラリはphpBBのファイルをインクルードしようとして開始し

require_once Kohana::find_file('vendor/phpbb_library', 'phpbb_library'); 
$phpbb = new Phpbb_library(); 

しかし、いったん次のエラーが表示されます。

ErrorException [ Fatal Error ]: Class user contains 5 abstract methods and must therefore be declared abstract or implement the remaining methods (Kohana_Session::_read, Kohana_Session::_regenerate, Kohana_Session::_write, ...) 

ここに含まれるファイルは、 eはphpBBによって使用されているので、明らかに私はそれらを変更することはできません。


Michal Mによって提案された解決策に続いて2012年1月2日

を解決し、私はKohanaのSessionクラスの私の独自のバージョンを作成し、モジュールにそれらを保存しています。私は、コピー、名前変更して編集していたファイルは以下の通りであった。すべてにおいて

/system/classes/session.php 
/system/classes/session/cookie.php 
/system/classes/session/exception.php 
/system/classes/session/native.php 

/system/classes/kohana/session.php 
/system/classes/kohana/session/cookie.php 
/system/classes/kohana/session/exception.php 
/system/classes/kohana/session/native.php 

は、関連する主な編集がKohana_MySite_SessionMySiteSessionKohana_SessionSessionクラス名を変更するファイル。 /system/classes/kohanaファイルには名前の変更が必要な変数がいくつかありましたが、

セッションを使用するには、単にMySiteSession::instance()と呼んでください。

PHPBBは、セッションクラスを使用しなくなったため、インクルードとして機能します。

+1

phpBBとKohanaの両方にSessionクラスがあるため、エラーが発生しています。これに対する解決策はありません。 – shadowhand

+0

解決方法はありますか? CodeIgniterはそれを動作させます:http://codeigniter.com/wiki/phpBB3_library私はKohanaがCodeIgniterフレームワークのオフセットであると思いました。 – diggersworld

+0

実際にブリッジの実装に成功しましたか?ソースを共有していただけますか?ありがとうございました – zinovii

答えて

2

CIのクラス名が異なります。すべてのCIクラスはCI_で始まり、Kohanaは接頭辞*を使用しません。

私が考えることができる唯一の解決策は、Kohana Sessionクラスをリファクタリングすること(どこにでも名前を変更する)か、phpBBライブラリで行うことです。どちらも理想的ではありません。


*)ただ、明確にする、KohanaのはKohana_を使用していますが、すべてのクラスが接頭辞なしのクラスによって拡張されています。

+0

新しいセッションクラスを作成し、サイト全体で使用しました。 'system/classes/kohana/security'ファイルで' Session :: instance() 'も使うシステムが1つあります。私は変えるべきかどうかわからない。それを拡張しようとします。 – diggersworld

+0

これが確認され、元の質問に完全な説明が追加されました。 – diggersworld

関連する問題