forked from EC-CUBE/ec-cube
-
Notifications
You must be signed in to change notification settings - Fork 0
ディレクトリ・ファイル構成
Yangsin edited this page Jul 29, 2015
·
5 revisions
以下に示すディレクトリ構成となるようにする。
[root]
├──app (主に環境によって変更が入るものを配置)
| ├── cache/
| | └──eccube/
| ├── config/
| | └──eccube/
| | └── *.yml
| ├── log/
| ├── template/ (拡張したテンプレート・デザインテンプレート)
| | ├── admin/
| | └── default/
| └── .htaccess
|
├── html/ (Document Rootとなるフォルダ。外部から直接参照する物のみ配置)
| ├── css/
| ├── js/
| ├── upload/
| ├── .htaccess
| ├── index.php
| └── robots.txt
|
├── src/
| └── Eccube/ (EC-CUBEのCOREとなるソースを配置)
| └── Controller/
| | └── *Controller.php
| ├── ControllerProvider/
| | ├── AdminControllerProvider.php
| | └── FrontControllerProvider.php
| ├── Entity/
| | └── *.php
| ├── Plugin/
| ├── Form/
| ├── Repository/
| | └── *Repository.php
| ├── Resource/
| | └── doctrine/
| | └──*.orm.yml
| | └── template
| | └──*.twig
| ├── Service/
| | └── *Service.php
| ├── ServiceProvider/
| | └── EccubeServiceProvider.php
| └── Application.php
|
└── vendor/
├── */
└── autoload.php
2系 | 3系 |
---|---|
SC_FormParam | Eccube\Form\Type\ |
SC_Query | DoctrineOrm |
SC_Helper_Purchase | Eccube\Service\PurchaseService |
LC_Page_Products_Class | Eccube\Controller\ProductClassController |
*.tpl | Eccube\Resouce\template\*.twig |
{$Hoge}ページを作る場合
ファイル | コーディング内容 |
---|---|
src\Eccube\ControllerPrivider(Front or Admin)Controller{$Hoge}Controller.php | ルーティングを追加・変更する |
src\Eccube\Controller{$Hoge}Controller.php | リクエストを受けて、Viewを出し分けるロジックを書く、 ビジネスロジックをもたない |
src\Eccube\Form\Type{$Hoge}Type.php | フォーム項目とバリデーション定義を作成する |
src\Eccube\Repository{$Hoge}Repository.php | EntityRepositoryをextendsしたClassを定義しておく |
src\Eccube\Entity{$Hoge}.php | Setter/Getterを記述, DBスキーマと紐づくため、型の定義などをしっかり記述する |
src\Eccube\Service{$Hoge}Service.php | ビジネスロジックを書く ビジネスロジックはちゃんとしたOOPとなるように記述する |
src\Eccube\View{$Hoge}.twig | View |
src\Eccube\ServiceProvider\EccubeServiceProvider.php | 作成したForm\Typeを$app['form.types']に記述する, 利用するRepositoryを$app['eccube.repository.{$hoge}']としてDICにいれる |
- できるだけ、テストが行われているものを利用する。
- ライブラリの採用時には事前に検討を行う。
- EC-CUBEの 3.0.X では基本的に外部ライブラリもAPIの変わらないバージョンを利用する。
- PEARを利用しているもので、SymfonyComponentに置き換えが可能なものは積極的に置き換える。
- Composer を標準で採用し、autoloader も同様に Composer 付属のものを利用する。