バージョン選択

フォーラム

メニュー

オンライン状況

71 人のユーザが現在オンラインです。 (53 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 70
Rohan もっと...

サイト内検索

機能要望 > その他 > WordPress風のプラグイン機構を開発してみました

その他

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
nanasess
投稿日時: 2011/9/8 9:43
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2314
Re: WordPress風のプラグイン機構を開発してみました
134 様

標準プラグインの実装は, 「LC_Page::process() 関数を乗っ取る」といった強引な実装なので, それよりもスマートな印象ですね!

現在の EC-CUBE は, どうしても PHP4 が離せないので, PHP5 限定なのが気になっています.

また, プラグイン間の排他制御や依存関係の制御を実装する予定はありますでしょうか?

せっかく PHP5 を使うのであれば, Dependency Injection や AOP などのデザインパターンで, もっと柔軟かつ, 開発効率の良いプラグインフレームワークができるのでは... と思っている今日この頃です.

「学習コストが低く, 開発効率の良いプラグイン」というのも, なかなか難しい課題ですが^^;
fukap
投稿日時: 2011/9/8 8:40
対応状況: −−−
仙人
登録日: 2009/7/7
居住地: 滋賀県
投稿: 907
Re: WordPress風のプラグイン機構を開発してみました
ご返信ありがとうございます。

引用:
すみません、プラグイン開発者向けのドキュメントは、まだ一切ありません。
簡単な説明があれば、何か試しに作っていただけそうですか?

作った事がないので、作れるかどうかわからないですが、トライしてみたいですね〜。
/data/ecc_plugin/plugin にプラグインのソースが見つかりましたので、
それを見ながらぼちぼち勉強させてもらおうかと思っています。
134
投稿日時: 2011/9/7 19:57
対応状況: −−−
一人前
登録日: 2009/10/20
居住地: 京都市
投稿: 91
Re: WordPress風のプラグイン機構を開発してみました
> ・検索ボックスでプラグインを検索してインストールできるとスマートで良いが、プラグインのインストールはどのような方法で行うのか。

/data/ecc_plugin/plugin がプラグインを格納するディレクトリになっており、
ここに投入すれば認識される(管理画面に現れる)ようになっています。
現在はFTP等でアップロードすることになりますが、
どうやって投入するかは、後付けで良いかと考えています。
私も、最終的にはWordPressのようなプラグインのリポジトリから
ボタンひとつでインストールできればと思っています。

> ・どんなコードを書けばプラグインが作成できるのか。

すみません、プラグイン開発者向けのドキュメントは、まだ一切ありません。
簡単な説明があれば、何か試しに作っていただけそうですか?

> ・プラグイン同士の干渉などは起こらないのか。

これはプラグインの作り次第で、あり得ます。
逆に、複数のプラグインを組み合わせることで、
動作するような実装は可能なように考えています。
例えば、「クロネコWebコレクトプラグイン」は、
「携帯でも全角カタカナ出力できるよプラグイン」を
インストールしないと、携帯から正しくデータが送信できません。

> ・プラグインのアップデートも簡単にできると素晴らしい。

/data/ecc_plugin/plugin/TplAsYouLike/TplAsYouLike.php
のソースを見て頂けるとお分かりいただけると思いますが、
アップデート機能は考慮しています。
各プラグインのコンストラクタで $arrUpdateRoadmap という変数に
各バージョン間で行うべきアップデートの手順を
コールバック関数として設定するような仕組みです。

> ・「テンプレート再作成」のボタンは何?

既存のテンプレートに表示項目を追加するような場合、
各プラグインでの指示に基づき、テンプレートをDOMで強制的に変形し、
変形したものをキャッシュするようになっています。
キャッシュの生成は、プラグインのインストール、アンインストール、
アップデート、停止、再開のいずれかが行われたときに実行されます。
デザインのカスタマイズでテンプレートを触ったような場合は
自動的にはキャッシュが再生成されませんので、
このボタンを用意しています。

例えば、変形の指示は、前述の TplAsYouLike.php でしたら
TplAsYouLike::setTemplateTransformer
で指定されています。
fukap
投稿日時: 2011/9/7 17:26
対応状況: −−−
仙人
登録日: 2009/7/7
居住地: 滋賀県
投稿: 907
Re: WordPress風のプラグイン機構を開発してみました
時間ができたので、少し触らせてもらいました。

ボタン1つで、機能のON/OFFが設定できていいですね。
「特定商取引法」のサンプルプラグインを試した感じでは、
ちゃんとON/OFFも効いており、データの追加入力も出来ました。

ソースファイルを触りたくないという人は多いでしょうから、
EC-CUBEの間口を大きく広げてくれそうに思います。

個人的には以下の事柄はどうなるのかなと関心を持っています。(プラグインの類は作った経験ないですw)

・検索ボックスでプラグインを検索してインストールできるとスマートで良いが、プラグインのインストールはどのような方法で行うのか。

・どんなコードを書けばプラグインが作成できるのか。

・プラグイン同士の干渉などは起こらないのか。

・プラグインのアップデートも簡単にできると素晴らしい。

・「テンプレート再作成」のボタンは何?
134
投稿日時: 2011/9/7 15:03
対応状況: −−−
一人前
登録日: 2009/10/20
居住地: 京都市
投稿: 91
Re: WordPress風のプラグイン機構を開発してみました
nanasess様

コメントありがとうございます。

標準のプラグイン機構で実際にプラグインを作成したりはしていないのですが
標準のプラグインも拝見しており、それに刺激を受けて開発を急いだ、
というのも事実です。

斜め読みした限りでは、基本的には既存の機能に影響が無いように
新機能を追加するものと理解しています。

今回公開させて頂いたプラグイン(以下「ECCプラグイン」)は、
既存機能の上書きなど、さらに融通の利くものを、とのコンセプトです。
裏を返せば、使い方を間違うと危険な仕組みでもあります。

●利点
・WordPressのプラグインに近い、高い柔軟性がある
・ブロックを使用しなくても、既存の画面に要素を追加したり、削除したりすることができる
・プラグインの一時停止/再開、アップデートなどにも対応

●欠点
・プラグインが本体のデータ構造に依存しやすい
・前項と同様ですが、本体のちょっとしたカスタマイズや、本体とプラグインのバージョンのズレ、
 プラグイン同士の相互作用で、プラグインが意図しない動きをする可能性がある
・フックポイントやAPIが揃うまでに、まだ時間がかかる
・DOMによるテンプレートの変形に、技術的な無理がある(かな?)

などでしょうか。

Windows対応は、具体的に作業には着手していませんが
いずれは必要かと思っています。

tanaca
投稿日時: 2011/9/7 11:49
対応状況: −−−
仙人
登録日: 2010/11/28
居住地: 福岡県
投稿: 332
Re: WordPress風のプラグイン機構を開発してみました
134 様

>デモ環境はデフォルトのEC-CUBEに、プラグイン機構を埋め込んだだけのような
>状態ですので、実際に利用する場合の設定まではされておりません。

>4つまでの契約を設定できるようにしているのは、
>Webコレクトの前身のサービスの「@ペイメント」から切り替えた場合に、
>クレジットカードと、それ以外で契約が分かれるケースがあったりするのと、
>予備(笑)です。

なるほどですね、理解できました。
たしかに「クロネコWebコレクト」のなかで利用するサービスの選択欄が必要ですね。

私が協力できる事は少ないですが、なるべく多くのフィードバックを投稿させていただき、
標準装備が実現されるように応援させていただきたいと思います。
今後ともどうぞ宜しくお願い致します。
nanasess
投稿日時: 2011/9/7 10:34
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2314
Re: WordPress風のプラグイン機構を開発してみました
すばらしい機能をありがとうございます!

EC-CUBE 2.11 から, 完全ではないものの, 標準でプラグインの仕組みを提供しています.
(一部の決済モジュールで使用しています)

こちらと比べて, 利点や欠点などありましたら, ご教示いただけたら幸いです.
また, Windows 対応の目処などありますでしょうか?
134
投稿日時: 2011/9/7 10:17
対応状況: −−−
一人前
登録日: 2009/10/20
居住地: 京都市
投稿: 91
Re: WordPress風のプラグイン機構を開発してみました
>tanaca様
早速の評価ありがとうございます。

デモ環境はデフォルトのEC-CUBEに、プラグイン機構を埋め込んだだけのような
状態ですので、実際に利用する場合の設定まではされておりません。
実際には、支払方法に「クロネコWebコレクト」といった項目を追加し
クロネコWebコレクトの管理画面で、「クロネコWebコレクト」に
チェックをつける、といったイメージです。

4つまでの契約を設定できるようにしているのは、
Webコレクトの前身のサービスの「@ペイメント」から切り替えた場合に、
クレジットカードと、それ以外で契約が分かれるケースがあったりするのと、
予備(笑)です。

正直申しまして、プラグインはいずれもサンプルなので、
まだ実用には耐えないと思います。


>fukap様
ありがとうございます。
感謝して頂けるほどのものか、現状では自信がありませんが
開けてびっくり、中身はめちゃくちゃで見限られないことを祈るばかりです。


コミュニティ版で皆様の力をお借りしてブラッシュアップし、
最終的には標準装備されれば、と夢描いています。
fukap
投稿日時: 2011/9/7 0:08
対応状況: −−−
仙人
登録日: 2009/7/7
居住地: 滋賀県
投稿: 907
Re: WordPress風のプラグイン機構を開発してみました
以前からぜひ欲しいと思っていたのが、このプラグイン機能でした。
PCのある環境に今いないのでまだ試せていませんが、試すのがとても楽しみです。
ご協力できることがありましたら、ぜひお手伝いしたいと思います。
まずは感謝の気持ちを述べさせていただきました。
tanaca
投稿日時: 2011/9/6 23:52
対応状況: −−−
仙人
登録日: 2010/11/28
居住地: 福岡県
投稿: 332
Re: WordPress風のプラグイン機構を開発してみました
日下部 様

素晴らしいプラグイン機能を公開いただきありがとうございます。
早速の質問で恐縮ですが、
 基本情報管理 > クロネコWebコレクト の画面に

  【対応支払方法】 郵便振替/現金書留/銀行振込/代金引換

という4つのチェックボックスがありましたが、クロネコWebコレクトの
画面に移動してカード・電子決済されるものだと思いますので
これらのチェックボックスは必要なさそうな気がするのですが
どのような意味合いなのでしょうか?

PS:標準機能に装備されるとかなり助かります。


« 1 (2) 3 »
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,982名です
総投稿数は110,019件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.