Comments (17)
autoloader に関係して、PSR-0 や PSR-1 への準拠は想定されていますでしょうか。
from ec-cube.
ディレクトリ構造の変化を伴うPSR-0への準拠は予定しておりません。
コーディング規約の面では、PSR-2へ準拠したいと考えています。
from ec-cube.
承知しました。ありがとうございます。
from ec-cube.
EC-CUBE のディレクトリ構造は対応していなくても、 autoloader は名前空間を基にしたオートロードに対応してほしいですね。
そうでないと、現在でも利用できるライブラリが限られてきているのに、今後ますます選択肢がなくなって、もう何年も更新されていないようなツールしか使えなくなりそうです。
from ec-cube.
ぜひ、data/module 以下だけでも composerに移行して、vendor/autoload.php へ移行していただきたいです。
from ec-cube.
EC-CUBE のディレクトリ構造は対応していなくても、 autoloader は名前空間を基にしたオートロードに対応してほしいですね。
そうですね。開発方針にもnamespace対応をしめしているので、それに沿った形で実装しましょう。
from ec-cube.
@ttsuru
PEAR使うのか、というのも含めて議論したいですね。
composer対応は、autoloaderと切り離して、別でissueたてて話した方がよさそうでしょうか?
また、issue運用に関してなのですが、issueはミニマムな構成にしていきたいと考えているので、話が別の領域までいく際は、関連付け(コメントに#Xをつける、でOK)をしたうえで別にissueを立てる方向でお願いします。
(もし、一般的でなければご指摘ください)
from ec-cube.
@shinichi-takahashi
issueについては小さい単位というのはいいと思います。
Labels で enhancement や bug などついてると追いやすいと思います。
PEARを使うのか自体ということですが、品質を担保し同じ内容を実装するのも大変なのではと思ってしまいます。
ComposerについてはComposerで定義をすれば、autoloaderのファイルまで生成されるため、同時の議論の方がよいかと思いますがいかがでしょうか。
以下、参考ソースになります。
https://www.softel.co.jp/blogs/tech/archives/4057
from ec-cube.
@ttsuru
なるほど、であれば本issueにてやり取りしていきましょう。
ComposerについてはComposerで定義をすれば、autoloaderのファイルまで生成される
こちら、確かにそうですね。
一旦、現状のEC-CUBEの依存パッケージorこれからのEC-CUBEの標準としたいパッケージを
composer.jsonに書き出すべきでしょうか。
from ec-cube.
こちら、とりあえず実装したものをPull Requestを投げさせていただきました。
autoloadについて
PSR-0への対応は行わないとのことですが、PSR-4であれば今後のNamespaceにも対応できるのではないでしょうか。
ComposerはPSR-4のautolodに対応しました。
プラグインのフック方法について
現在のSC_*のフック方法ですが、何か他のいい実装方法はないのでしょうか。
同じメソッドをchainしたりできないのは不便ではないでしょうか。
プラグインのインストールについて
例えば、今後はcomposerと同様の形式にしてしまえば依存関係も一気に解決するような気がします。
ロジックは以下のイメージです。
dtb_plugin
へ書き込み->composer.json
(もしくは外部ファイルに書き込み)->composer install
composer ではpre-install-cmd
post-install-cmd
pre-update-cmd
post-update-cmd
などがあり、現在のプラグインインストールに該当する内容も実装可能です。
また、Pluginのautoload対応や、updateもよりやりやすくなると思います。
最近Wordpress界隈で話題の ``wp-cli` っぽいような感じにもできそうな気がします。
from ec-cube.
@ttsuru
pull requestいただきありがとうございます!
ベースとなる部分なので、早いうちにmergeできるよう確認進めたいと思います。
from ec-cube.
プルリク確認しました。
data/module/以下にfpdfとgdthumbが残ってしまいますが、こちらはどうしようもないですかね・・・?
本プルリクの採用についてはもう少しだけissueで継続して相談させてください。
from ec-cube.
@shinichi-takahashi
gdthumb については古くカスタマイズなどもしにくく感じますので、他のライブラリへの移行が良いと思います。
fpdfについては特に日本語対応のJapanese部分があるため、autoload.phpの対応だけであれば可能だと思いますが、とりあえずは残しておきました。
コミットについてはまずはPEAR部分のComposer化とさせていただき、残り部分は後日検討でいかがでしょうか。
from ec-cube.
@shinichi-takahashi
@ttsuru
リリース用のパッケージ(*.tar.gz, *.zip) には、 PEAR のパッケージも同梱する認識で合っていますか?
Composer の使えない環境も多々あると思いますので。。
from ec-cube.
@nanasess
その認識であってます。
Composer対応はあくまで開発用で、パッケージでは一般的なレンタルサーバ(SSH接続なし)でインストールできることを想定しています。
from ec-cube.
リリース用のスクリプトも修正が必要ですね。
from ec-cube.
Composer導入と@ttsuruさんのPRをマージしたため、本件クローズいたします。
ご対応いただいたみなさま、ありがとうございます。
from ec-cube.
Related Issues (20)
- フォーム問い合わせの返信メールに問い合わせ内容を含めないようにしたい HOT 2
- 規格管理(class_category)のvisibility切り替えのイベントの不備 HOT 1
- 管理画面>商品検索の入力フォームにバリデーションを追加したい。 HOT 1
- 管理画面>コンテンツ管理>新着情報で入力必須バッジがない
- 管理画面>ユーザアイコン>パスワード変更で入力必須バッジがない HOT 1
- 管理画面>商品管理>商品規格登録で入力必須バッジがない HOT 1
- 受注管理 >受注一覧>出荷済にするボタンでチェックボックスでしかチェック出来ない
- 受注管理>受注登録で住所の郵便番号にしかrequired属性が入っていない
- 商品管理>規格管理>登録で入力必須バッジがない HOT 1
- 商品管理>規格管理>規格分類管理に、入力必須バッジがない HOT 2
- コンテンツ管理>新着情報管理>新着情報登録に、入力必須バッジがない HOT 1
- 4.0/4.1系のブランチの運用方法変更について HOT 3
- 会員登録後の自動ログイン機能の一部復活 HOT 1
- ゲスト購入時にご注文手続き>お客様情報編集で都道府県がエラーになる HOT 4
- 開発時のスロットリング機能の無効化 HOT 4
- EC-CUBE 4.3 Roadmap HOT 20
- 長期間にわたって未ログインなどの条件で会員を抽出表示し、退会告知メールを送信できる機能が欲しい HOT 1
- 4.2系でsitemap_product_0.xmlと指定するとシステムエラーが発生する。 HOT 2
- Git上で標準で入っているプラグインのエラーについて HOT 1
- 上限を超えたお届け先の登録ができてしまう HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ec-cube.