目次

Apricot プロジェクトの作成

y2sunlight 2020-04-25

Apricot に戻る

関連記事


フォルダ構成

以下にプロジェクトフォルダの構成を示します。

apricotがプロジェクトフォルダになります。この名前は任意に付けることができますが、プロジェクトフォルダ以下の名前についは規則があり、変更することはできません。主要なソースコードは coreapp に存在し、これらには名前空間としてそれぞれ CoreAppが付与されており、オートローディングを有効にするために、composer.jsonautoload を追加しています。

/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フォルダ

アプリケーションの本体を保存するフォルダーで以下のクラスが存在します。

assetsフォルダ

アプリケーションのリソースを保存します。

configフォルダ

アプリケーションの設定を保存します。

coreフォルダ

Apricotのコアクラスを保存します。コアの主な目的は次の3つです。

publicフォルダ

公開用のフォルダです。ここにApricotのフロントコントローラ( index.php )があります。

testフォルダ

テスト用のフォルダです。使い方に制限はありません。必要に応じて追加して下さい。

varフォルダ

アプリケーションの次のデータを保存するフォルダです。

vendorフォルダ

Composerが使用する外部ライブラリーの保存フォルダです。


プロジェクトフォルダ

プロジェクトフォルダの直下には、以下のファイルがあります。

composer.json とcomposer.lock については「Composer 基本的な使い方」を、composer.phar とcomposer.bat については「Composerのローカルインストール」を参照して下さい。


プロジェクトの作成

本編の定番ライブラリーで既にプロジェクトを作成しライブラリをインストール済の場合は、Apricot 公開フォルダに進んで下さい。まだプロジェクトを作成していない場合は次の手順に従って下さい。

(1)プロジェクトの作成

以下のページに従って、Eclipseのプロジェクトを作成して下さい。

(2)composer.jsonの設置

以下の 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で取得した定番ライブラリをビルトパスに追加する為に以下の操作を行って下さい。

  1. Eclipseを起動します。
  2. プロジェクト・エクスプローラー内の[プロジェクト(apricote)]を右クリックして[リフレッシュ]を選択して下さい。
  3. プロジェクトのビルトまたはクリーン&ビルドを行ってビルドリストの更新を行って下さい。