2

PHP5.3用のZendGuard5.5で一部のPHPをロックダウンしようとしていますが、PHP5.2では問題なく正常に動作していました。暗号化せずにコードを正常に実行できますが、暗号化を追加すると、次のエラーがスローされます。

致命的なエラー:クラス'Zend_Log'が../app/code/local/MyModule/TestModule/Model/Mysql4/Setup.phpの0行目に見つかりません

問題のあるファイルを暗号化されていないバージョンに置き換え始めると、エラーはモジュール内の他の暗号化されたファイルに移動します。

以下は、ライセンスサポートを有効にするためにすべてのPHPファイルの先頭に配置されるコードです。このコードは、最近プログラムされた別の新しいモジュールで実際に機能しています。

if(zend_loader_file_encoded()) {

    if(!zend_loader_enabled() || !zend_get_id()) {

        exit('<strong>Error:</strong> The Zend Optimizer loader is not enabled! <br /><br />To enable it, please modify the following in your php.ini:  zend_optimizer.enable_loader = on.');
                                                }

            else if(!zend_loader_file_licensed()){
                $licensePath = Mage::getModuleDir('etc', 'MyModule_TestModule'). DS . 'license' . DS . 'license.zl';
                    if(!file_exists($licensePath)) {
                        exit("<strong>Error:</strong> No license file was found. Your license file should be located in: $licensePath. <br /><br />If you do not have a license, you need to obtain one from the Dev Team by contacting: <a href=\"mailto:devteam@site.com\">devteam@site.com</a>.");
                                               } 

if(!zend_loader_install_license($licensePath)) {
exit('<strong>Error:</strong> An error occurred while loading your license file. Please contact support at <a href="mailto:devteam@site.com">devteam@site.com</a>.');
                       }
                    }
                }

私は低くも高くも検索しましたが、私の人生のためにこれを理解することはできません。どんな助けでも大歓迎です。

4

1 に答える 1

0

I encountered a similar 'class not found' error after encoding some code with ZendGuard.

Re-encoding with the obfuscation of variable, function, and class names disabled fixed the problem for me.

It seems the ZendGuard encoder is not able to handle some types of unusual but legal PHP syntax.

于 2014-03-26T03:13:35.753 に答える