Ground Sunlight

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

ユーザ用ツール

サイト用ツール


apricot:core:top

差分

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

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

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
apricot:core:top [2020/04/30 15:11]
y2sunlight [フォルダの作成]
apricot:core:top [2020/06/03 10:02] (現在)
tanaka [utilities.php]
行 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:base-controller|Apricot ベースコントローラ]]
 +    * [[apricot:core:completion|Apricot コアの完成]]
   * [[apricot:app:top|Apricot アプリ]]   * [[apricot:app:top|Apricot アプリ]]
-  * [[apricot:ext:top|Apricot 拡張]] +  * [[apricot:ext:middleware|Apricot 拡張]]
- +
-----+
  
 まずは、apricotのコアを作る為に以下を準備します。 まずは、apricotのコアを作る為に以下を準備します。
行 23: 行 23:
   * コアフォルダ、名前空間、オートローディングの設定   * コアフォルダ、名前空間、オートローディングの設定
   * コア構築のヘルパーとなるグローバル関数とベースクラス   * コア構築のヘルパーとなるグローバル関数とベースクラス
-\\+ 
 +----
  
 ===== 環境設定 ===== ===== 環境設定 =====
行 89: 行 90:
 === assetsフォルダ === === assetsフォルダ ===
  
-同様に、リソース用のフォルダ assets を作成し、その下に3つのフォルダ(lang, sql, veiws)を作成します。+同様に、リソース用のフォルダ assets を作成し、その下に3つのフォルダ(lang, sql, views)を作成します。
  
 <code> <code>
行 98: 行 99:
     |── lang  [言語別の出力テキスト]     |── lang  [言語別の出力テキスト]
     |── sql   [SQLファイル]     |── sql   [SQLファイル]
-    └── veiws [HTMLテンプレート]+    └── views [HTMLテンプレート]
 </code> </code>
  
 === var フォルダ === === var フォルダ ===
  
-同様に、各種データ保存用のフォルダ var を作成し、その下に3つのフォルダ(cache, db, logs)を作成します。+同様に、フォルダ var を作成し、その下に3つのフォルダ(cache, db, logs)を作成します。
  
 <code> <code>
行 191: 行 192:
 ===== ヘルパー ===== ===== ヘルパー =====
  
-グローバル関数を保存するためのPHPファイルを core\helper に作成します。目的別に2種類のPHPファイルがあります。+グローバル関数を保存するためのPHPファイルを core\helpers に作成します。目的別に2種類のPHPファイルがあります。
  
   * boilerplates.php --- apricotでよく使用される定型文的なコードパターンを関数化したもの\\ ( apricotではボイラープレートと呼んでいる )   * boilerplates.php --- apricotでよく使用される定型文的なコードパターンを関数化したもの\\ ( apricotではボイラープレートと呼んでいる )
行 250: 行 251:
 utilities.php にはapricot内部で使用する様々な関数が実装さいれています。ほとんどの場合、アプリケーションから使用することはないと思います。使用法などは以下のソースコードを参照して下さい。 utilities.php にはapricot内部で使用する様々な関数が実装さいれています。ほとんどの場合、アプリケーションから使用することはないと思います。使用法などは以下のソースコードを参照して下さい。
  
-{{fa>folder-open-o}} ** /apricot/core/helper **+{{fa>folder-open-o}} ** /apricot/core/helpers **
 <code php utilities.php> <code php utilities.php>
 <?php <?php
行 390: 行 391:
 { {
     return (new \ReflectionClass($object))->getShortName();     return (new \ReflectionClass($object))->getShortName();
 +}
 +
 +/**
 + * Get snake_case from UpperCamelCase or lowerCamelCase
 + * @param string $camel
 + * @return string|null
 + */
 +function snake_case(string $camel =null)
 +{
 +    if (!isset($camel)) return null;
 +
 +    $snake = preg_replace('/([A-Z])/', '_$1', $camel);
 +    return ltrim(strtolower($snake), '_');
 +}
 +
 +/**
 + * Get SQL text from a file
 + * @param string $filename
 + * @return array
 + */
 +function file_get_sql(string $filename):array
 +{
 +    if (!file_exists($filename)) return [];
 +
 +    // Read a file
 +    $text = file_get_contents($filename);
 +    $text = str_replace(["\r\n","\r"], "\n", $text);
 +
 +    // Remove comment
 +    $text = preg_replace("/\/\*.*?\*\//s", '', $text);
 +    $text = preg_replace("/--.*?$/m", '', $text);
 +
 +    // Split SQL text
 +    $sql = preg_split("/\s*;\s*/", $text);
 +    array_walk($sql, function(&$item){
 +        $item = trim($item);
 +    });
 +    $sql = array_filter($sql, function($val){
 +        return !empty(trim($val));
 +    });
 +    return $sql;
 } }
 </code> </code>
apricot/core/top.1588227116.txt.gz · 最終更新: 2020/04/30 15:11 by y2sunlight