Ground Sunlight

Windowsで作る - PHPプログラミングの開発環境

ユーザ用ツール

サイト用ツール


apricot:core:top

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
次のリビジョン 両方とも次のリビジョン
apricot:core:top [2020/04/30 09:39]
y2sunlight [ベースクラス]
apricot:core:top [2020/05/05 10:14]
y2sunlight [Apricot コア作成の準備]
行 9: 行 9:
   * Apricot コア   * Apricot コア
     * Apricot コア作成の準備     * Apricot コア作成の準備
-    * [[apricot:core:applocation-class|Apricot アプリケーションクラス]]+    * [[apricot:core:application-class|Apricot アプリケーションクラス]]
     * [[apricot:core:basic-class|Apricot 各種基本コアクラス]]     * [[apricot:core:basic-class|Apricot 各種基本コアクラス]]
     * [[apricot:core:request-class|Apricot リクエストクラス]]     * [[apricot:core:request-class|Apricot リクエストクラス]]
     * [[apricot:core:response-class|Apricot レスポンスクラス]]     * [[apricot:core:response-class|Apricot レスポンスクラス]]
 +    * [[apricot:core:completion|Apricot コアの完成]]
   * [[apricot:app:top|Apricot アプリ]]   * [[apricot:app:top|Apricot アプリ]]
   * [[apricot:ext:top|Apricot 拡張]]   * [[apricot:ext:top|Apricot 拡張]]
  
-----+\\
  
 まずは、apricotのコアを作る為に以下を準備します。 まずは、apricotのコアを作る為に以下を準備します。
行 23: 行 24:
   * コアフォルダ、名前空間、オートローディングの設定   * コアフォルダ、名前空間、オートローディングの設定
   * コア構築のヘルパーとなるグローバル関数とベースクラス   * コア構築のヘルパーとなるグローバル関数とベースクラス
-\\+ 
 +----
  
 ===== 環境設定 ===== ===== 環境設定 =====
行 56: 行 58:
 \\ \\
  
-===== コアフォルダ =====+===== フォルダの作成 ===== 
 + 
 +=== coreフォルダ ===
 以下に示すようにプロジェクトフォルダ下に、コア用のフォルダ core を作成し、その下に4つのフォルダ(Derivations, Exceptions, Foundation, helpers)を作成します。 以下に示すようにプロジェクトフォルダ下に、コア用のフォルダ core を作成し、その下に4つのフォルダ(Derivations, Exceptions, Foundation, helpers)を作成します。
  
行 70: 行 74:
 </code> </code>
  
-クラスを保存するフォルダはUpperCamelCaseそれ以外はsnake_caseを使用しています+  * core フォルダは[[https://www.php-fig.org/psr/psr-4/|PSR-4]]によるオートローディングのベースフォルダとなります。従って、core 下のフォルダ及びファイルはPSR-4の命名規則に従う必要があり、クラスを保存するフォルダ及びファイルはUpperCamelCaseを使用します。それ以外はsnake_caseを使用します
  
-\\+=== configフォルダ ===
  
-==== composer.json変更 ====+同様に、アプリケーション設定用フォルダ config を作成し、その下に2つのフォルダ(setting, setup)を作成します。
  
-以下ようにcomposer.jsonへ ''autoload'' を追加します。+<code> 
 +apricot [プロジェクト] 
 + | 
 + ├── config [設定ファイル] 
 +    | 
 +    ├── setting [機能別一般設定] 
 +    └── setup   [機能別の起動設定] 
 +</code> 
 + 
 +=== assetsフォルダ ===
  
-{{fa>folder-open-o}} ** /apricot ** +同様に、リソース用のフォルダ assets を作成し、その下に3つのフォルダ(lang, sql, veiws)を作成します。 
-<code json composer.json+ 
-{ +<code> 
-   ... +apricot [プロジェクト] 
- "autoload" : { + | 
- "psr-4" : { + ├── assets [リソース] 
- "Core\\" : "core/" + |    | 
- }, + |    |── lang  [言語別の出力テキスト] 
- "files": + |    |── sql   [SQLファイル
- "core/helpers/utilities.php", + |    └── veiws [HTMLテンプレート]
- "core/helpers/boilerplates.php" +
- +
- +
-}+
 </code> </code>
  
-  * coreフォルダをCore名前空間にマッピングします +=== var フォルダ === 
-  * 次のァイルをオートロード対象追加します(グローバル関数用) + 
-    * core/helpers/utilities.php +同様に、ダ var 作成し、そ3つのフォルダ(cache, db, logs)を作成します
-    * core/helpers/boilerplates.php+
  
-オートローディングファイルを更新する為に、プロジェクトフォルダで以下のコマンドを実行します。 
 <code> <code>
-composer dump-autoload+apricot [プロジェクト] 
 + | 
 + ├── var 
 +    | 
 +    ├── cache [キャッシュ] 
 +    ├── db    [DBファイル(sqlite)] 
 +    └── logs  [ログ]
 </code> </code>
  
行 182: 行 195:
 グローバル関数を保存するためのPHPファイルを core\helper に作成します。目的別に2種類のPHPファイルがあります。 グローバル関数を保存するためのPHPファイルを core\helper に作成します。目的別に2種類のPHPファイルがあります。
  
-  * utilities.php --- PHPの基本的な組み込み関数を拡張する目的 
   * boilerplates.php --- apricotでよく使用される定型文的なコードパターンを関数化したもの\\ ( apricotではボイラープレートと呼んでいる )   * boilerplates.php --- apricotでよく使用される定型文的なコードパターンを関数化したもの\\ ( apricotではボイラープレートと呼んでいる )
 +
 +  * utilities.php --- PHPの組み込み関数を拡張した関数群\\ ( apricot内部で使用することが主な目的 )
 +
 +\\
 +
 +==== boilerplates.php ====
 +boilerplates.php へは関数を逐次追加します。現段階での内容は以下の通りです。
 +
 +^関数^機能^
 +|env($key, $default = null)|環境変数(.envファイル設定値)の取得|
 +|abort(int $code, string $message=null)|HTTP例外(400,500番台)の発生|
 +
 +<code php boilerplates.php>
 +<?php
 +/**
 + * Get Environment Variable
 + * @param string $key
 + * @param mixed $default
 + * @return mixed environment Variable
 + */
 +function env($key, $default = null)
 +{
 +    $value = getenv($key);
 +    if ($value === false)
 +    {
 +        return $default;
 +    }
 +    
 +    switch (strtolower($value))
 +    {
 +        case 'true': return true;
 +        case 'false':return false;
 +        case 'empty':return '';
 +        case 'null' :return null;
 +    }
 +    return $value;
 +}
 +
 +/**
 + * Abort
 + * @param int $code
 + * @param string $message
 + * @throws \Core\Exceptions\HttpException
 + */
 +function abort(int $code, string $message=null)
 +{
 +    throw new Core\Exceptions\HttpException($code, $message);
 +}
 +</code>
 +
 +\\
 +
 +==== utilities.php ====
 +
 +utilities.php にはapricot内部で使用する様々な関数が実装さいれています。ほとんどの場合、アプリケーションから使用することはないと思います。使用法などは以下のソースコードを参照して下さい。
  
 {{fa>folder-open-o}} ** /apricot/core/helper ** {{fa>folder-open-o}} ** /apricot/core/helper **
行 325: 行 392:
 { {
     return (new \ReflectionClass($object))->getShortName();     return (new \ReflectionClass($object))->getShortName();
-} 
-</code> 
- 
- 
-boilerplates.php へは関数を逐次追加します。現段階での内容は以下の通りです。 
- 
-<code php boilerplates.php> 
-<?php 
- 
-/** 
- * Abort 
- * @param int $code 
- * @param string $message 
- * @throws \Core\Exceptions\HttpException 
- */ 
-function abort(int $code, string $message=null) 
-{ 
-    throw new Core\Exceptions\HttpException($code, $message); 
 } }
 </code> </code>
行 406: 行 455:
     }     }
 } }
 +</code>
 +
 +\\
 +
 +===== オートローディングの変更 =====
 +
 +以下のようにcomposer.jsonへ ''autoload'' を追加します。
 +
 +{{fa>folder-open-o}} ** /apricot **
 +<code json composer.json>
 +{
 + ....
 + "require" : {
 + ...
 + },
 + "autoload" : {
 + "psr-4" : {
 + "Core\\" : "core/"
 + },
 + "files": [
 + "core/helpers/utilities.php",
 + "core/helpers/boilerplates.php"
 + ]
 + }
 +}
 +</code>
 +
 +  * coreフォルダをCore名前空間にマッピングします
 +  * 次のファイルをオートロードの対象に追加します(グローバル関数用)
 +    * core/helpers/utilities.php
 +    * core/helpers/boilerplates.php
 +
 +オートローディングファイルを更新する為に、プロジェクトフォルダで以下のコマンドを実行します。
 +<code>
 +composer dump-autoload
 </code> </code>
  
apricot/core/top.txt · 最終更新: 2020/06/03 10:02 by tanaka