2017 © Pedro Peláez
 

library slim-littie-tools

little tools for Slim Framework skeleton applications

image

gallu/slim-littie-tools

little tools for Slim Framework skeleton applications

  • Saturday, July 21, 2018
  • by gallu
  • Repository
  • 1 Watchers
  • 1 Stars
  • 7 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 7 Versions
  • 0 % Grown

The README.md

SlimLittleTools

Slim Framework(4.x)用の、比較的小さなツール群です。, (*1)

インストールについて

composer require gallu/slim-littie-tools:^v1.0

でインストールしてください。, (*2)

StaticBase.php

「静的メソッドのみ」クラス用の、インスタンス生成ガードクラス, (*3)

WithContainerBase.php

「コンストラクタでContainerを受け取る」クラス用の基底クラス, (*4)

WithStaticContainerBase.php

「static プロパティでContainerを受け取る」クラス用の基底クラス, (*5)

./Controller:

ControllerBase.php

Controller用の継承クラス。コンストラクタでContainerを所持するようにしている。, (*6)

./Exception:

内部的に使う例外クラスが収められています。, (*7)

./Libs:

Config.php

Container内の「setting」の設定を簡単に取得する為のラッパー, (*8)

DB.php ConnectPDO.php ConnectPDODummy.php

「settingに設定をいれたらDBハンドルへの接続&Containerへの設定」と「DBハンドルの取得」ができるクラス
PDOとあるが、実際には拡張されたPDOクラス, (*9)

PDO.php

上述に記載のある、拡張されたPDOクラス。
トランザクションの有無が把握できる + 1メソッドでプリペアドステートメントが発行できる。, (*10)

Filter.php

データを、ルールにそってフィルタリング(データの修正/変形)を行います。
ルールを複数記述する場合は、 | でつなげてください。, (*11)

  • trim trim関数で前後の空白などを除去
  • empty_string_to_null 空文字ならNULLに変換する
  • strtolower strtolower関数で処理(英字をすべて小文字にする)
  • strtoupper strtoupper関数で処理(英字をすべて大文字にする)
  • floor 端数の切り捨て(型はfloat型になる)
  • ceil 端数の切り上げ(型はfloat型になる)
  • abs 絶対値
  • int int型へのキャスト
  • string string型へのキャスト
  • zip_hyphen ハイフン付きの郵便番号にフォーマット(郵便番号としてinvalidなら入力値をそのまま返す)
  • zip_space スペース付きの郵便番号にフォーマット(郵便番号としてinvalidなら入力値をそのまま返す)
  • zip_shorten 数字のみの郵便番号にフォーマット(郵便番号としてinvalidなら入力値をそのまま返す)
  • hirakana カタカナとひらがなをすべて「全角ひらがな」にする
  • katakana カタカナとひらがなをすべて「全角カタカナ」にする

Validator.php

値が「正しいか」のチェック
※ required無し、かつ入力が空文字の場合は、validateはtrueを返します, (*12)

  • required 必須チェック
  • datetime 日次フォーマットチェック
  • alpha アルファベット
  • alpha_num アルファベットまたは数
  • min_length:数 (文字としての)最低文字数(バイト長)。引数の数未満ならエラー
  • max_length:数 (文字としての)最大文字数(バイト長)。引数の数を超えるならエラー
  • range_length:数-数 (文字としての)範囲(バイト長)。引数は「n以上m以下」。範囲外ならエラー
  • min_m_length:数 (文字としての)最低文字数(文字数(mb_length))。引数の数未満ならエラー
  • max_m_length:数 (文字としての)最大文字数(文字数(mb_length))。引数の数を超えるならエラー
  • range_m_length:数-数 (文字としての)範囲(文字数(mb_length))。引数は「n以上m以下」。範囲外ならエラー
  • min_number:数 (数値としての)最低値。引数の数未満ならエラー
  • max_number:数 (数値としての)最大値。引数の数を超えるならエラー
  • range_number:数-数 (数値としての)範囲。引数は「n以上m以下」。範囲外ならエラー
  • compare_with 自身のカラム名+'_check' を探して、値をチェック。等しくなければエラー。パスワードとかemailで使う想定
  • int int型、もしくは「intとして認識可能な数字だけの文字列」であること
  • float float型、もしくは「floatとして認識可能な数字だけの文字列」であること
  • zip 郵便番号形式( nnn-nnnn , nnn nnnn , nnnnnnn )であること
  • tel 電話番号形式( ハイフン、スペース、数字のみは一通り対応)であること
  • hirakana 文字がすべて「全角ひらがな(かスペース(全角半角ともOK))」でること
  • katakana 文字がすべて「全角カタカナ(かスペース(全角半角ともOK))」でること
  • email emailフォーマットである事(filter_var()のFILTER_VALIDATE_EMAILを使ってます)

./Libs/Http:

Cookies.php

getについて「非最短形式の場合には空文字を返す」ようにチェック。
setについて「第三引数にsettingを指定したら"そのCookieだけ"defaultを変更する」処理を追加。
deleteメソッドを追加。, (*13)

Request.php

getParam等について、「非最短形式の場合には空文字を返す」ようにチェック(Param's'系はそのフックを入れていないので注意)。
getSpecifiedParams()メソッドの追加(引数で渡した配列のカラムをまとめて取得: 指定されたkeyがGET/POSTに存在しない場合、keyは作成されません)。
getSpecifiedParams()メソッドに第二引数で true を明示的に渡すと、指定されたkeyがGET/POSTに存在しない場合に「値がNULL」でkeyが作成されます。, (*14)

getSrcIp()メソッドを使うと「アクセス元のIPアドレス」が取得できます。あればHTTP_X_FORWARDED_FOR、無ければREMOTE_ADDRを見に行きます。それ以外のnameで入ってくる場合、引数での指定も可能です。, (*15)

./Middleware:

AddHeader.php

主にセキュリティ上などの理由で「入れておきたい」ヘッダを追加で仕込みます。
上書き等したい場合は、$setting['setting']['add_response_header'] に、[ key => value ]の形式で記述すると、上書きされます。, (*16)

CsrfGuard.php

Slim-Csrf( https://github.com/slimphp/Slim-Csrf )の軽いラッパーです。
全体にMiddlewareを割り当てつつ「ルート名がこの名前の時はチェックをしない」処理を追加しています。
setNotCoveredList()メソッドで、「除外対象のルート名」を渡してください。, (*17)

SlimLittleToolsUse.php

ConfigやDBなど、いくつかのLibs内のクラスが有効に働くようにします。具体的には「静的プロパティにcontainerを入れます」。, (*18)

./Model:

ModelContainer.php

「Modelの配列」です。ほぼ配列そのものですが、toAarray()メソッドを叩くと「中に保持している各modelのtoArray()を叩いて結果を返す」実装が追加されています。, (*19)

ModelBase.php

いわゆる「Model」クラスの基底です。
細かい使い方は、別リンクで確認してください。, (*20)

./Trait:

./src:

Slim-Skeleton 系で「src」の中によく入っているコードの「推奨サンプル」になります。
ほかに必要な設定もあるかと思うので、コピペして使うとよいと思います。, (*21)

戻り値の早見表

Model

insert
null / 自身のインスタンス
update
false / true
delete
false / PDOStatementインスタンス
find / findBy
null / 自身のインスタンス
findByAll
null / ModelCollectionインスタンス

PDO

preparedQuery
false / PDOStatementインスタンス

The Versions

21/07 2018

dev-master

9999999-dev

little tools for Slim Framework skeleton applications

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michiaki Furusho

rest psr7 slim microframework

21/07 2018

v0.0.6

0.0.6.0

little tools for Slim Framework skeleton applications

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michiaki Furusho

rest psr7 slim microframework

21/07 2018

v0.0.5

0.0.5.0

little tools for Slim Framework skeleton applications

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michiaki Furusho

rest psr7 slim microframework

17/07 2018

v0.0.4

0.0.4.0

little tools for Slim Framework skeleton applications

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michiaki Furusho

rest psr7 slim microframework

16/07 2018

v0.0.3

0.0.3.0

little tools for Slim Framework skeleton applications

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michiaki Furusho

rest psr7 slim microframework

14/07 2018

v0.0.2

0.0.2.0

little tools for Slim Framework skeleton applications

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michiaki Furusho

rest psr7 slim microframework

14/07 2018

v0.0.1

0.0.1.0

little tools for Slim Framework skeleton applications

  Sources   Download

MIT

The Requires

 

The Development Requires

by Michiaki Furusho

rest psr7 slim microframework