Giter Club home page Giter Club logo

ec-cube.github.io's Introduction

EC-CUBE 3開発ドキュメント

github page of the http://ec-cube.github.io/

EC-CUBE 3 の仕様や手順、開発Tipsに関するドキュメントを掲載しています。 修正や追記、新規ドキュメントの作成をいただく場合、本レポジトリへPullRequestをお送りください。

開発協力に関して

コードの提供・追加、修正・変更その他「EC-CUBE」への開発の御協力(Issue投稿、PullRequest投稿など、GitHub上での活動)を行っていただく場合には、 EC-CUBEのコピーライトポリシーをご理解いただき、ご了承いただく必要がございます。 PullRequestを送信する際は、EC-CUBEのコピーライトポリシーに同意したものとみなします。

本ドキュメントサイトの構成について

github pageはJekyll Documentation themeを使っています。

windows環境の方は以下のURLを参考に環境を作成してください。 http://qiita.com/chihiro-adachi/items/99a82c902b4c8467aa4c

Build the site to see the instructions for using it. Or just go here: http://idratherbewriting.com/documentation-theme-jekyll/

ローカル開発環境の構築

EC-CUBE 3開発ドキュメントはローカル開発環境を構築することにより、 ドキュメントを修正した場合にローカルPCで確認することができます。 Windows、Macの環境で動作確認済みです。

前提条件

  1. ローカル環境にruby(バージョン:2.4.0以上)がインストールされている必要があります。
  2. Windows環境の場合、Git Bash等のターミナルを利用して下さい。
  3. ご自身のGithubアカウントが必要になります。

※ Rubyのバージョン確認方法

$ ruby -v
ruby 2.4.5p335 (2018-10-18 revision 65137) [x64-mingw32]

開発環境構築手順

ec-cube.github.ioをForkする

ec-cube.github.ioのリポジトリをご自身のGithubリポジトリにForkします。

任意のディレクトリにクローンする

Forkしたご自身のリポジトリからソースを、git clone でローカルにコピーします。

$ git clone https://github.com/[ご自身のアカウント名]/ec-cube.github.io.git

リモートリポジトリに本家のリポジトリを登録する

本家のリポジトリの名前をupstream(任意)で登録します。

$ cd ec-cube.github.io/
$ git remote add upstream https://github.com/EC-CUBE/ec-cube.github.io.git

gem(rubyのライブラリ)のインストールを行う

bundle installにより、gemfile.lockを元にgemのインストールを行います 。

$ bundle install

※ Windows環境では、gemfile.lockが更新されてしまいますが、git管理から無視するように下さい。(コミット対象から除外する)

eventmachine (1.2.7-x64-mingw32)

ローカルサーバーでサイトを立ち上げる

以下のコマンドでサイトが立ち上がります。

$ bundle exec jekyll serve
(省略)
Server address: http://127.0.0.1:4005
Server running... press ctrl-c to stop.

http://127.0.0.1:4005 にブラウザのURLでアクセスすると、 EC-CUBE 3開発ドキュメントのページが表示されます。

ec-cube.github.io's People

Contributors

akiyan avatar chihiro-adachi avatar dependabot[bot] avatar geany-y avatar izayoi256 avatar junpeko5 avatar k-yamamura avatar kanako-kina avatar kazumiiiiiiiiiii avatar kdl-github-albert avatar kiwiaway avatar kiy0taka avatar koichi-kobayashi avatar kuwa72 avatar nanasess avatar nobuhiko avatar ohgiwk avatar okazy avatar ryo-endo avatar shhirose avatar shinyatto avatar sugie avatar t-nagahashi avatar tetsuyaohira avatar yoshiaki-natsume avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ec-cube.github.io's Issues

4系ドキュメントへのリンクを張っておきたい

3系ドキュメントと、4系ドキュメントについて、
どっちが4なのかわからないという声があったので、混乱しないためにどうすべきか検討をしたいです。

3系:http://doc4.ec-cube.net
4系:http://doc4.ec-cube.net

Herokuボタン利用時の注意事項

herokuボタンでEC-CUBEを立ち上げる際に、プラグインのインストーラでは以下の制約がある

  • プラグインインストール時に、メモリ上限に引っかかる可能性がある
  • タイムアウトの制限に引っかかる可能性がある

プラグイン機構を利用した開発手法

  • プラグイン機構を利用した開発手法
    • ジェネレータの利用方法
    • ページの追加
    • 利用しないページの削除
    • フォームの追加
    • フォームの変更
    • テーブルの追加
      • dcm.ymlの作成
      • エンティティの作成
      • レポジトリの作成
      • データベースへ反映する

self-update?

venderの更新について

  • composer.jsonに変更がない場合vendor/の上書きは不要です
  • composerが利用可能な環境の場合vendorの上書きではなく以下でも可能です
> php composer.phar self-update

self-updateってcomposer自体を最新にアップデートするコマンドのような気が?

$app['config']['root_urlpath']の利用についての注意記載をする

$app['config']['root_urlpath']は、環境によって異なる。

通常、サブディレクトリにインストールした場合は、

/eccube/html

となるが、URLからhtmlを取り除いた環境では

/eccube/

となる。

そのため、html配下へのパス(/html/plugin/xxx など)を取得するために$app['config']['root_urlpath']を使用していた場合、正常に取得できない可能性があるので、使用すべきではない。

参考:
EC-CUBE本体コードでは、$app['config']['root_urlpath']はCookieのパスとして使用しているだけ。

FormTypeのカスタマイズページ ファイル名修正漏れ

対象ページ
FormTypeのカスタマイズ
http://doc4.ec-cube.net/customize_formtype

サンプル
会員登録ページのフォームを拡張して、会社名を入力必須項目に変更するサンプルです。
./app/Customize/Form/Extension/EntryTypeBirthdayExtension.php

サンプル
会員登録ページのフォームを拡張して、会社名を入力必須項目に変更するサンプルです。
./app/Customize/Form/Extension/CompanyNameRequiredExtension.php

ナビゲーションが見切れる

ナビゲーションバーの プラグインカスタマイズ > ベストプラクティス を押下するとメニューが画面外にまで及び、クリックできないリンクがある。

flushの作法について記載して欲しい

Doctrineのflash関数を引数無しで利用すると、意図しないものまでflashされる可能性がある。
明示的に引数にEntityを渡すよことを推奨して欲しい。

【重複】プラグイン開発の手順をまとめる

プラグイン開発にあたって、DBのテーブル作成など、一連の流れがわかるドキュメントを作成する
例えばテーブル作成であれば、Symfony標準の方法も合わせて様々な手法があるため、初学者にとって迷いやすいと思われる。

プラグインのインストールページの管理画面を利用してインストールするについて

プラグインのインストールページの管理画面を利用してインストールするについてですが、

http://doc4.ec-cube.net/plugin_install

正式版がリリースされましたので、下記の文言を削除して頂けたらと思います。
「EC-CUBE 4.0 開発中のため利用することが出来ません。」

あとREADMEの表記(EC-CUBE 4.0.0-rc)もご対応頂けると助かります。

EC-CUBE本体のソースコードを変更する

  • EC-CUBE本体のソースコードを変更する
    • バージョン管理
      • バージョン管理対象
    • アップデート方法
      • gitを利用したマージ
      • マイグレーション
      • composerの更新
    • 本体の変更を追随するためのコーディング方法
    • セキュリティFIXについて

サービスのカスタマイズの内容精査

対象ページ
Service のカスタマイズ
http://doc4.ec-cube.net/customize_service#%E6%94%AF%E6%89%95%E6%96%B9%E6%B3%95%E3%81%8C%E7%95%B0%E3%81%AA%E3%82%8B%E5%95%86%E5%93%81%E3%82%92%E5%90%8C%E6%99%82%E3%81%AB%E3%82%AB%E3%83%BC%E3%83%88%E3%81%AB%E5%85%A5%E3%82%8C%E3%82%89%E3%82%8C%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B

支払方法が異なる商品を同時にカートに入れられるようにする の記述通りに実装をしても
反映されない。ドキュメントの内容を最新のEC-CUBEの仕様に合わせる必要があるかと思います。

暫定解決方法:
https://ec-cube.slack.com/archives/CBQ4H83J9/p1540890504003800?thread_ts=1540866486.000500&cid=CBQ4H83J9

プラグインを利用する

  • プラグインを利用する
    • プラグインの導入方法
      • オーナーズストアからの導入
      • 独自プラグインの追加
    • トラブルシューティング
      • 項目が表示されない場合の対処方法
      • プラグインの優先順位

プラグイン開発ルールについて

ec-cubeのIssueから移動 EC-CUBE/ec-cube#1436

ttsuru commented on 29 Jan
プラグインの開発ルールのようなものを定められませんでしょうか。

例えば、app/Plugin 以下にはシステムから生成されるファイルを置かないなど、ルールづけできると嬉しいです。

プラグイン開発の手順をまとめる

プラグイン開発にあたって、DBのテーブル作成など、一連の流れがわかるドキュメントを作成する
例えばテーブル作成であれば、Symfony標準の方法も合わせて様々な手法があるため、初学者にとって迷いやすいと思われる。

計測タグの埋め込みについてのドキュメントが欲しい

GAなどの計測タグや購入完了ページにコンバージョンタグを埋めたいなどの要望をいただくことがあります。
公式ドキュメントに設定方法があると助かります。

記載内容の提案

  • 全ページタグの埋め方
    • default_frame.twig に直接追加する方法
    • ブロック管理でタグを追加する方法
  • コンバージョンタグ
    • 購入完了画面にコンバージョンタグを追加する例

参考

公式ドキュメント以外ではQiitaに記事があります。

https://qiita.com/okazy/items/913584e3a676bf8eb0b9
https://qiita.com/tirol_jpn/items/37ba326676f572e70dc7

カスタマイズガイドラインの作成

EC-CUBEを使ってカスタマイズを行う場合のガイドラインを作成する

以下のケースを想定

  • プラグインを利用する、デザインを変更する場合
  • 項目の追加など、軽微なカスタマイズを行う場合
  • テーブルのスキーマ定義も含め、大きく変更を加える場合

task list

その他

  • その他 
    • 開発環境構築
      • パッケージ版からの構築
      • githubからの構築
    • 本番反映
      • 開発環境から本番環境への反映
      • 本番稼働後の修正

デザインのカスタマイズ方法

  • デザインのカスタマイズ方法
    • ブロックの利用
    • 「テンプレートの探索順序」仕様
      • app/templateへtwigファイルを配置する
    • default_flame.twig
    • フォームレイアウトの変更について
      • form.layout.twig
    • gulpを利用したディレクトリ構造

プラグイン開発の手順について

プラグイン開発にあたって、DBのテーブル作成など、一連の流れがわかるドキュメントを作成する
例えばテーブル作成であれば、Symfony標準の方法も合わせて様々な手法があるため、初学者にとって迷いやすいと思われる。

Service のカスタマイズ > Processor の実装例

対象ページ
http://doc3n.ec-cube.net/customize_service#%E3%83%95%E3%83%AD%E3%83%BC%E3%81%AE%E5%88%B6%E5%BE%A1%E3%81%AE%E6%B5%81%E3%82%8C

「独自に作成した Processor を有効にするには、 app/config/eccube/packages/purchaseflow.yaml の定義を修正します。」の下に記述されている yaml の 「eccube.purchase.flow.cart.item_processors」は、既存の purchaseflow.yaml には存在しておりませんでした。

あと、今後バージョン別に細かくドキュメントを作らないのであれば、「バージョン4.0の場合の例」のような注記があると親切かなと思いました。

xdebug有効時、プラグインインストールに失敗する

xdebugが有効な環境の場合、プラグインインストール時に次ののエラーが発生
(画面上には表示されない。ログで確認)

Maximum function nesting level of '256' reached, aborting!

xdebugを無効にすると解消されます。
プラグイン利用時の注意事項として記載する

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.