0

yootheme の CCK "ZOO" を使用してカスタム要素を作成しようとしていますが、問題が発生しました。カスタム要素を作成するには、他の 2 つの要素を拡張する必要があると思います。

それでは始まります

<?php
// no direct access
defined('_JEXEC') or die('Restricted access');

// register ElementRepeatable class
App::getInstance('zoo')->loader->register('ElementRepeatable', 'elements:repeatable/repeatable.php');
// register ElementOption class
App::getInstance('zoo')->loader->register('ElementOption', 'elements:option/option.php');

これを追加してクラスを呼び出し、拡張して実装したいと思います (この文が何を意味するのか本当にわかりません)。2 つのファイルを見て、それらを結合しています。

class ElementCustomName  extends ElementOption extends ElementRepeatable implements iRepeatSubmittable {

実際のコードはその下から始まります...

ElementOption を ElementRepeatable と共に拡張する方法を理解しようとしています。

これは私が得るエラーです:

 Parse error: syntax error, unexpected T_EXTENDS, expecting '{'

クラスラインで期待されているでしょう。

どんな助けでも大歓迎です。

編集

最初のコメントからの試行

class ElementCustomName extends ElementOption {
/* Select Option - More Code Than This */
}

class ElementOption extends ElementRepeatable implements iRepeatable {
/* Text Option - More Code Than This */
}

致命的なエラー:

Fatal error: Cannot redeclare class ElementOption
4

1 に答える 1

0

PHP では多重継承を行うことはできません。option.php と related.php を見ると、ほぼ同じメソッドが実装されていることがわかります。これらのオブジェクトのキメラを作成したい場合は、2 つのクラスからコピー アンド ペーストして独自の要素を作成します。エレガントではありませんが、機能します。

于 2013-03-26T12:52:38.810 に答える