====== Apricot プロジェクトの作成 ====== --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-04-25// [[apricot:top|Apricot に戻る]] 関連記事 * Apricot プロジェクトの作成 * [[apricot:public|Apricot 公開フォルダ]] * [[apricot:core:top|Apricot コア]] * [[apricot:app:top|Apricot アプリ]] * [[apricot:ext:middleware|Apricot 拡張]] ---- ===== フォルダ構成 ===== 以下にプロジェクトフォルダの構成を示します。 ''apricot''がプロジェクトフォルダになります。この名前は任意に付けることができますが、プロジェクトフォルダ以下の名前についは規則があり、変更することはできません。主要なソースコードは ''core'' と ''app'' に存在し、これらには名前空間としてそれぞれ ''Core''と''App''が付与されており、オートローディングを有効にするために、''composer.json'' で ''autoload'' を追加しています。 {{fa>folder-open-o}} ** /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 [外部ライブラリ] === appフォルダ=== アプリケーションの本体を保存するフォルダーで以下のクラスが存在します。 * 【 基盤 】コントローラ、モデル、エラーバッグなどのベースクラス * 【 例外 】アプリケーション例外クラスと集約例外コントローラ * 【 モデル 】通常データベースのテーブル単位で作り、アプリケーションのデータモデルとなる * 【 コントローラ 】通常画面単位に作り、URLと結びついたアクション(メソッド)から構成されている * 【 ミドルウェア 】アクション起動時の前処理(まはた後処理)を行うクラス * 【 ヘルパー 】ビューヘルパーなどの共通のユーティリティクラス * 【 サービス 】特定のサービスクラス(オプション) * 【 コンテナ― 】サービスプロバイダーとサービスコンテナ―(オプション) === assetsフォルダ === アプリケーションのリソースを保存します。 *【 ビューテンプレート 】画面を作成するHTMLテンプレート([[basic-library:bladeone:3.37|BladeOne]]で使用) *【 言語別のテキスト 】トランスレーションの為の言語別のテキスト *【 SQLファイル 】データベース構築の為のSQL === configフォルダ === アプリケーションの設定を保存します。 *【 起動設定 】機能別のアプリケーション起動時の設定ファイル *【 一般設定 】機能別の一般設定ファイル === coreフォルダ === Apricotのコアクラスを保存します。コアの主な目的は次の3つです。 * アプリケーションの構成管理を提供する * リクエストからレスポンスまでの標準的な処理方法を提供する * ロギング、例外集約、デバックの機能を提供する === publicフォルダ === 公開用のフォルダです。ここにApricotのフロントコントローラ( ''index.php'' )があります。 === testフォルダ === テスト用のフォルダです。使い方に制限はありません。必要に応じて追加して下さい。 === varフォルダ === アプリケーションの次のデータを保存するフォルダです。 * ログファイル * キャッシュファイル * データベースファイルなど === vendorフォルダ === Composerが使用する外部ライブラリーの保存フォルダです。 \\ ===== プロジェクトフォルダ ===== プロジェクトフォルダの直下には、以下のファイルがあります。 * composer.json --- 使用する外部ライブラリの依存関係の定義ファイル * composer.lock --- 実際にダウンロードする外部ライブラリのバージョン定義ファイル * composer.phar --- Composer本体(phpスクリプト) * composer.bat --- composerコマンド(batファイル) * .env --- 環境設定ファイル([[apricot:core:top#環境設定|Apricot 基本コア]]の章で説明します) composer.json とcomposer.lock については「[[composer:1.9:basic-usage|Composer 基本的な使い方]]」を、composer.phar とcomposer.bat については「[[composer:1.10:local-install|Composerのローカルインストール]]」を参照して下さい。 \\ ===== プロジェクトの作成 ===== 本編の[[basic-library:top|定番ライブラリー]]で既にプロジェクトを作成しライブラリをインストール済の場合は、[[apricot:public|Apricot 公開フォルダ]]に進んで下さい。まだプロジェクトを作成していない場合は次の手順に従って下さい。 === (1)プロジェクトの作成 === 以下のページに従って、Eclipseのプロジェクトを作成して下さい。 * [[basic-library:project|プロジェクトの作成 - Apricot (α版)]] === (2)composer.jsonの設置 === 以下の ''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" } } === (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スクリプト) === (4)定番ライブラリのビルトパスへの追加 === Composerで取得した定番ライブラリをビルトパスに追加する為に以下の操作を行って下さい。 - Eclipseを起動します。 - プロジェクト・エクスプローラー内の[プロジェクト(apricote)]を右クリックして[リフレッシュ]を選択して下さい。 - プロジェクトのビルトまたはクリーン&ビルドを行ってビルドリストの更新を行って下さい。 \\