以下にプロジェクトフォルダの構成を示します。
apricot
がプロジェクトフォルダになります。この名前は任意に付けることができますが、プロジェクトフォルダ以下の名前についは規則があり、変更することはできません。主要なソースコードは core
と app
に存在し、これらには名前空間としてそれぞれ Core
とApp
が付与されており、オートローディングを有効にするために、composer.json
で autoload
を追加しています。
/apricot
apricot [プロジェクト] | ├── app [アプリケーション] | | | ├── Controllers [コントローラ] | ├── Exceptions [例外] | ├── Foundation [基盤] | ├── Helpers [ヘルパー] | ├── Middleware [ミドルウェア] | ├── Models [モデル] | └── Services [サービス](Option) | ├── assets [リソース] | | | ├── lang [言語別の出力テキスト] | ├── sql [SQLファイル] | └── views [HTMLテンプレート] | ├── config [設定ファイル] | | | ├── setting [機能別の一般設定] | └── setup [機能別の起動設定] | ├── core [Apricotのコア] | | | ├── Derivations [ライブラリの派生クラス] | ├── Exceptions [例外] | ├── Foundation [基盤] | └── helpers [ヘルパー関数] | ├── public [公開フォルダ] | | | ├── css/ | ├── img/ | ├── js/ | ├── var/ | ├── resources/ | ├── .htaccess | └── index.php | ├── test [テスト用] | ├── var [データファイル] | | | ├── cache [キャッシュ] | ├── db [DBファイル(sqlite)] | └── logs [ログ] | └── vendor [外部ライブラリ]
アプリケーションの本体を保存するフォルダーで以下のクラスが存在します。
アプリケーションのリソースを保存します。
アプリケーションの設定を保存します。
Apricotのコアクラスを保存します。コアの主な目的は次の3つです。
公開用のフォルダです。ここにApricotのフロントコントローラ( index.php
)があります。
テスト用のフォルダです。使い方に制限はありません。必要に応じて追加して下さい。
アプリケーションの次のデータを保存するフォルダです。
Composerが使用する外部ライブラリーの保存フォルダです。
プロジェクトフォルダの直下には、以下のファイルがあります。
composer.json とcomposer.lock については「Composer 基本的な使い方」を、composer.phar とcomposer.bat については「Composerのローカルインストール」を参照して下さい。
本編の定番ライブラリーで既にプロジェクトを作成しライブラリをインストール済の場合は、Apricot 公開フォルダに進んで下さい。まだプロジェクトを作成していない場合は次の手順に従って下さい。
以下のページに従って、Eclipseのプロジェクトを作成して下さい。
以下の composer.json
を、プロジェクトフォルダに作成して下さい。(既に存在する composer.json は上書きして下さい)
{ "name" : "y2sunlight/apricot", "description" : "Apricot Sample Project", "license" : "MIT", "require" : { "vlucas/phpdotenv" : "^4.1", "monolog/monolog" : "^2.0", "j4mie/idiorm" : "^1.5", "eftec/bladeone" : "^3.37", "nikic/fast-route" : "^1.3", "filp/whoops" : "^2.7", "maximebf/debugbar" : "^1.16", "vlucas/valitron": "^1.4", "league/container": "^3.3" } }
プロジェクトフォルダで以下のコマンドを実行します。
composer install
実行結果
Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 15 installs, 0 updates, 0 removals - Installing nikic/fast-route (v1.3.0): Loading from cache - Installing psr/container (1.0.0): Loading from cache - Installing league/container (3.3.0): Loading from cache - Installing symfony/polyfill-ctype (v1.15.0): Downloading (100%) - Installing phpoption/phpoption (1.7.3): Downloading (100%) - Installing vlucas/phpdotenv (v4.1.4): Downloading (100%) - Installing psr/log (1.1.3): Downloading (100%) - Installing monolog/monolog (2.0.2): Loading from cache - Installing j4mie/idiorm (v1.5.6): Loading from cache - Installing eftec/bladeone (3.40): Downloading (100%) - Installing filp/whoops (2.7.1): Loading from cache - Installing symfony/polyfill-mbstring (v1.15.0): Downloading (100%) - Installing symfony/var-dumper (v5.0.7): Downloading (100%) - Installing maximebf/debugbar (v1.16.2): Downloading (100%) - Installing vlucas/valitron (v1.4.7): Loading from cache monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server) monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server) monolog/monolog suggests installing ruflin/elastica (Allow sending log messages to an Elastic Search server) monolog/monolog suggests installing elasticsearch/elasticsearch (Allow sending log messages to an Elasticsearch server via official client) monolog/monolog suggests installing php-amqplib/php-amqplib (Allow sending log messages to an AMQP server using php-amqplib) monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required)) monolog/monolog suggests installing ext-mongodb (Allow sending log messages to a MongoDB server (via driver)) monolog/monolog suggests installing mongodb/mongodb (Allow sending log messages to a MongoDB server (via library)) monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoDB) monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages to Rollbar) monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome) eftec/bladeone suggests installing eftec/bladeonehtml (Extension to create forms) filp/whoops suggests installing whoops/soap (Formats errors as SOAP responses) symfony/var-dumper suggests installing ext-intl (To show region name in time zone dump) symfony/var-dumper suggests installing symfony/console (To use the ServerDumpCommand and/or the bin/var-dump-server script) maximebf/debugbar suggests installing kriswallsmith/assetic (The best way to manage assets) maximebf/debugbar suggests installing predis/predis (Redis storage) Writing lock file Generating autoload files 4 packages you are using are looking for funding. Use the `composer fund` command to find out more!
この段階でプロジェクタフォルダには以下のファイルとフォルダができているはずです。
.settings/ ------ Eclipses設定フォルダ vendor/ --------- 外部ライブラリフォルダ .buildpath ------ Eclipseビルドパスファイル .project -------- Eclipseプロジェクトファイル composer.bat ---- composerコマンド composer.json --- Composer依存関係定義ファイル composer.lock --- Composerロックファイル composer.phar --- Composer本体(phpスクリプト)
Composerで取得した定番ライブラリをビルトパスに追加する為に以下の操作を行って下さい。