このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 最新のリビジョン 両方とも次のリビジョン | ||
apricot:core:top [2020/04/30 15:11] y2sunlight [フォルダの作成] |
apricot:core:top [2020/06/03 09:59] tanaka [ヘルパー] |
||
---|---|---|---|
行 9: | 行 9: | ||
* Apricot コア | * Apricot コア | ||
* Apricot コア作成の準備 | * Apricot コア作成の準備 | ||
- | * [[apricot: | + | * [[apricot: |
* [[apricot: | * [[apricot: | ||
* [[apricot: | * [[apricot: | ||
* [[apricot: | * [[apricot: | ||
+ | * [[apricot: | ||
+ | * [[apricot: | ||
* [[apricot: | * [[apricot: | ||
- | * [[apricot: | + | * [[apricot: |
- | + | ||
- | ---- | + | |
まずは、apricotのコアを作る為に以下を準備します。 | まずは、apricotのコアを作る為に以下を準備します。 | ||
行 23: | 行 23: | ||
* コアフォルダ、名前空間、オートローディングの設定 | * コアフォルダ、名前空間、オートローディングの設定 | ||
* コア構築のヘルパーとなるグローバル関数とベースクラス | * コア構築のヘルパーとなるグローバル関数とベースクラス | ||
- | \\ | + | |
+ | ---- | ||
===== 環境設定 ===== | ===== 環境設定 ===== | ||
行 89: | 行 90: | ||
=== assetsフォルダ === | === assetsフォルダ === | ||
- | 同様に、リソース用のフォルダ assets を作成し、その下に3つのフォルダ(lang, | + | 同様に、リソース用のフォルダ assets を作成し、その下に3つのフォルダ(lang, |
< | < | ||
行 98: | 行 99: | ||
| | ||
| | ||
- | | + | |
</ | </ | ||
=== var フォルダ === | === var フォルダ === | ||
- | 同様に、各種データ保存用のフォルダ var を作成し、その下に3つのフォルダ(cache, | + | 同様に、フォルダ var を作成し、その下に3つのフォルダ(cache, |
< | < | ||
行 191: | 行 192: | ||
===== ヘルパー ===== | ===== ヘルパー ===== | ||
- | グローバル関数を保存するためのPHPファイルを core\helper | + | グローバル関数を保存するためのPHPファイルを core\helpers |
* boilerplates.php --- apricotでよく使用される定型文的なコードパターンを関数化したもの\\ ( apricotではボイラープレートと呼んでいる ) | * boilerplates.php --- apricotでよく使用される定型文的なコードパターンを関数化したもの\\ ( apricotではボイラープレートと呼んでいる ) | ||
行 390: | 行 391: | ||
{ | { | ||
return (new \ReflectionClass($object))-> | return (new \ReflectionClass($object))-> | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * 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('/ | ||
+ | return ltrim(strtolower($snake), | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Get SQL text from a file | ||
+ | * @param string $filename | ||
+ | * @return array | ||
+ | */ | ||
+ | function file_get_sql(string $filename): | ||
+ | { | ||
+ | if (!file_exists($filename)) return []; | ||
+ | |||
+ | // Read a file | ||
+ | $text = file_get_contents($filename); | ||
+ | $text = str_replace([" | ||
+ | |||
+ | // Remove comment | ||
+ | $text = preg_replace("/ | ||
+ | $text = preg_replace("/ | ||
+ | |||
+ | // Split SQL text | ||
+ | $sql = preg_split("/ | ||
+ | array_walk($sql, | ||
+ | $item = trim($item); | ||
+ | }); | ||
+ | $sql = array_filter($sql, | ||
+ | return !empty(trim($val)); | ||
+ | }); | ||
+ | return $sql; | ||
} | } | ||
</ | </ |