gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

フレームワーク

validationについて考えてみる

「について考えてみる」三部作(って今決めたw)、最後の項目。 内容は「validation、をどこに実装するか?」てなお話です。一旦、Webアプリケーションのお話で展開します。。 前提として、Modelのお話が出てくるんで https://gallu.hatenadiary.jp/entry/201…

Modelについて考えてみる

あちこちで「MVC」と言われつつ、なんか気がつくとMVPとかMVVMとか色々出てきて。 一方でじゃぁ「Model、って単語自体はは大体共通認識なのか?」と問うと、これがまた………。というあたりで。 ちぃとごみごみと混雑しているように思われるので、一端、考察し…

フレームワークって「マシントレーニング」な側面があるよね

いやまぁ言いたいことはタイトルそのまんま、なのですが。 お題は「フレームワーク」。 見方を変えると「ライブラリとフレームワークの違い」の一端、かもしれない。元ネタ http://concierge.diet/column/leader/kawabe20151230 これが自重での筋トレですと…

Slim docsの解析; Cook book

これは……重量級かも。 URIが個々に違うので、頑張れるところまで。 Trailing / in route patterns https://www.slimframework.com/docs/v3/cookbook/route-patterns.html 「スリムは、末尾にスラッシュが付いたURLパターンを、スラッシュなしのものとは異な…

Slim docsの解析; System Error Handler

https://www.slimframework.com/docs/v3/handlers/error.html 地味に大事なあたり。 Default error handler 「デフォルトのエラーハンドラは非常に基本的です。 Responseステータスコードを500に設定し、Responseコンテンツタイプをtext / htmlに設定し、Res…

Slim docsの解析; 寄り道してCookie

Slim docsには記載がないっぽいのですが。 まぁ普段「sessionとCookieはよく使うよねぇ」というあたりで、その辺を少し検証。 なおセッションはどうも、公式のSkeletonですら ・自力でsession_start()発行 ・sessionっぽい字面のクラスがない ので、「おとな…

Slim docsの解析; Middleware

https://www.slimframework.com/docs/v3/concepts/middleware.html ネタ的には「最重要クラス」に重要なネタなので、腰を据えて。 とりあえず、こちらの画像が一番わかりやすいんだろうなぁ、って思う。 https://www.slimframework.com/docs/v3/images/middl…

Slim docsの解析; Routing

https://www.slimframework.com/docs/v3/objects/router.html まごうことなき大物。 腰据えていきませう。……下手したら二分割かも。 How to create routes。 うん、ここはまぁOK。 おいちゃん的には $app = new \Slim\App(); $app->get('/books/{id}', クラ…

Slim docsの解析; The Response

https://www.slimframework.com/docs/v3/objects/response.html ここも結構な大物だろう、と予想。 How to get the Response object いやまぁHow to言われても「呼ばれる関数(メソッド)の第二引数でゲトれる」くらいだしなぁ。 get('/foo', function (Ser…

Slim docsの解析; The Request

https://www.slimframework.com/docs/v3/objects/request.html 多分、ここは大物w とりあえずルーティング設定。 関数とか「設定できる」んだろうけどやる気はないんで、無視w The Request Method ………まぁ一通り。GET,PUT,POST,DELETEくらいしか使う気ない…

Slim docsの解析; The Application

https://www.slimframework.com/docs/ の中から「The Application」をざっくりと見て、興味深いところをメモ。 https://www.slimframework.com/docs/v3/objects/application.html $config = [ 'settings' => [ 'displayErrorDetails' => true, 'logger' => […

Slim skeletonの解析

さて続きましては slim/slim-skeleton の解析。 https://github.com/slimphp/Slim-Skeleton なので、なんとなし「多分公式が推奨してるんじゃないかと思われる方向性」が確認できるんじゃないかなぁ、と期待。 ……で調べたら、別の人が作ったスケルトンもある…

解析その4

核心……、の、はず!!w 「Routeの__invoke」からのstartでございます。 vendor/slim/slim/Slim/Route.php public function __invoke(ServerRequestInterface $request, ResponseInterface $response) { $this->callable = $this->resolveCallable($this->ca…

解析その3

そろそろ核心………かなぁ?w 前回出てきた、本命くさい vendor/slim/slim/Slim/App.php の__invoke()メソッド。 // Get the route info $routeInfo = $request->getAttribute('routeInfo');なんとない想像はできるんだけど、躊躇なくvar_dumpして確認w NULL …

解析その2

さて。本丸のrun()メソッド。 多分、ここからが長丁場な予感(笑 vendor/slim/slim/Slim/App.php public function run($silent = false) { $response = $this->container->get('response'); try { ob_start(); $response = $this->process($this->container->…

解析その1

一瞬「解析シリーズ」とかやってみようかしらん? とか、思ってみたりみなかったり。 おいといて。 さて、ゆるゆると解析開始。 まぁ大概のWebアプリケーション、最近は「ここから始まる」1点があるので、そこを確認。 よっぽどヒネてない限り、大概は「Doc…

Slim初めてみました

ちと色々と思考して、もしかしてSlimは割と「好みな可能性」を想起したもので。 いったん、分解して色々と整理してみたいなぁ、と思いました的、宣言エントリ。 いったん、環境だけ作成しました。 slim-skeleton使ったのと、ほぼ純正にSlimのみ、の2環境。 …

複合主キーの扱い方(一部)

LaravelのModelである「Eloquent ORM」で、複合主キーを扱う時の知見を得たので、備忘録的に。 Laravel5.5でやってます。それ以外のバージョンでどうなるかは不明です。 前提として。 おいちゃんは基本「サロゲートキー基本的にお好まない」一派です。 http:…

Model、どうすっかねぇ? 的な

直近思案しているのはLaravel5.5案件なのですが。 まぁ割と「あちこちのPHP MVCフレームワークで言える(ような気がする)」ので、あちこちに疑問を投げかける的な想定で。 端的には「データの入力やvalidateの処理、Modelに書きますか? Controllerに書きます…

他言語やる時のラーニングパターン フレームワーク変

新しいフレームワーク触るときの手出しの仕方のパターンを合わせて。 URLルーティング設定の確認と、場合によっては破り方 まぁ大体「書かなくてもデフォルトで動く」ケースが多いのですが(その場合は「まずHello World」へ)。 「明示的な記述が必要な場合」…

set_from_cgi_update()のオーバライド用覚え書き

MagicWeaponには、data_clumpっていう、おいちゃんが勝手に「OTM(Object Tbale Mapper)」って呼称している、割合特徴的なクラスがあります。 で、この子は割と「データの塊」を扱うので。 例えば「formから情報を一式とってきてインスタンスん中にいれる」場…

get_recursive_depth() を実装しました

MWでいうところのModel(「アプリケーションデータ、ビジネスルール、ロジック、関数」ってところから、ウチでは実際の処理一式。他のPHPのフレームワーク的には「Controller内にある1Action相当」って思うとわかりやすいかと)に、get_recursive_depth()メソ…

「URLの擬似静的化」のMagicWeapon用の覚え書き

今度どこか(多分github)にまとめますが。 簡易的に、MagicWeapon用のをmemoっておきます。 mod_rewriteの記述 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-s RewriteRule…

所謂「URLの擬似静的化」についての諸々

うちとこの生徒さん(達)に質問されたのですが、ちょうど「どっかで書かないとなぁ」って思ってたネタでちょうど良いので。 URLの擬似静的化(または、URLの静的化)ってのは…んと… http://example.com/program.php?param=param ってなので動く動的なHTMLを、 h…

組み込んでみようかしらん?

元ネタはこれ 岡田斗司夫さん「プロフィールを改ざんされた」とmixi退会 http://www.itmedia.co.jp/news/articles/0904/02/news094.html 岡田さんが退会直前に更新したmixi日記によると、「mixiのプロフィールが何物かに無断で改ざんされる事態が続き、頻繁…

sourceforgeのsvnって…

えと。発端は「sourceforgeのsvnからソースをダウンロードしようとしたんだけど文字化けする」っていうお話を頂戴したあたり。 とりあえず確認してみたのですが… 以下、httpのレスポンスヘッダ。 HTTP/1.x 200 OK Date: Tue, 14 Oct 2008 01:12:40 GMT Serve…

フレームワークって…

んと。 http://d.hatena.ne.jp/IwamotoTakashi/20070421/p1 こちらをちらりと拝見して思ったですが。 逆説的ですが、フレームワークっぽくないのがZend Frameworkの良さですね。好きなところだけつまんでね、という感じで。 ………ええ? 「好きなところだけつ…

いい!!

むむぅ。すてぇきなフレームワーク発見。 世界最軽量のPHP用MVCフレームワーク、その名も 「ちいたん」。公式Pageはこちら http://php.cheetan.net/ 。 素晴らしい。なにがいいってこのシンプルさ加減と軽さ加減がぐっど。 インストールの仕方も何もかも一通…

あきらめてSmarty触ってみました:本題

…まて。 まぁいいや(笑 んっと。何がいやって「MVCに入れ込みにくい」の"も"イヤでして。 具体的には。displayメソッドで「いきなり出力する」のってどうよ? お願いだからHTML stringで復帰する関数ぷりぃづ!! ってわけで作りました(2006/09/26追記。…い…

あきらめてSmarty触ってみました

んっと…まぁ「デザイナがなれてるからSmartyよろ」と言われると…後メンテ考えて「やだい」とは言いにくく。 今後も延々保守やりまくるならともかくとして、以降どうなるかわからないだけに余計にねぇ…。 ってなわけで。かなり嫌々ながらSmarty叩いてみたです…