0

私はcodeIgniterをsmartyと統合していましたが、この致命的なエラーが発生しました:83行目の保護されたプロパティCI_Output::$final_outputにアクセスできません。/CodeIgniter_2.1.0/application/libraries/smarty_parser.php

グーグルで検索したところ、 protected $final_output; // in CodeIgniter_2.1.0/system/core/Output.php line no. 37

私がに変更したとき: public $final_output; // working fine

私の懸念は、CodeIgniterコアファイルを変更するのは良いことですか、それとも将来エラーが発生するのでしょうか?

4

2 に答える 2

2

他のフレームワークやライブラリと同様に、Code Igniterは手動で変更しないでください。システムを更新する可能性がなくなったためです(システムを更新すると、public$final_output;はprivate$final_outputに変更されます。また、もう一度変更してください)。

この状況では、必要な変更は1つだけですが、さらにいくつかの行を変更すると思います。もう一度行うために、すべての変更を覚えていますか?

私の推奨事項は、Code Igniterバグトラッカーhttps://github.com/EllisLab/CodeIgniter/issuesで問題を開き、状況をコメントして助けを求めてください。すべてにもかかわらず、変更を行う必要がある場合は、変更を含むパッチファイルを作成し、それを元のファイルと同じフォルダーにわかりやすい名前で配置します。このようにして、システムを更新するたびにパッチを適用できます。

于 2012-10-13T15:03:14.073 に答える
1

CodeIgniterはオープンソースであるため、正しいと思われる場合は、必要に応じて変更できます。私はいつも私のものを変更します。何かをパブリック関数にすると、通常は大きな問題は発生しませんが、既存のプライベートfinal_output()をそのままにして、SmartyがアクセスできるようにOutput.phpに新しいパブリック関数を作成することを検討してください。これは、コアの拡張として実行できます。詳細はこちらです。

于 2012-10-13T15:03:57.430 に答える