サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
qiita.com/asaokamei
Vue.js勉強したメモ。 まずはVue.jsのサイトにあるガイドの「はじめに」をコピペでテスト。そこからちょっとずつ変更を加えていって学んだこと。バージョンはVue.js v2.3.3です。 学んだこと: 例の{{ }}はMustache(ムスターシュ)記法と呼ぶ。 MustacheはHTMLアトリビュート(属性)には使えない。 ループ内からメソッド呼び出しは、わかってしまえば簡単。 クラスの動的変更の便利な方法。 参考ページ: Vue.jsオフィシャルページ:はじめに Qiitaの記事:Vue.jsから手軽に始めるJavaScriptフレームワーク コード(HTMLとJavaScript) <div id="project-list"> active project: {{ active }} <ul> <li v-for="project in projects" v-bind:cl
モーダルウィンドウを動的に表示するVue.jsコンポーネントのサンプルです。 ソース:https://github.com/asaokamei/vue2-dynamic-modal モーダルウィンドウのサンプルコードは、例えばVue.jsのオフィシャルサイトにもたくさんあります。ただモーダルの中身が固定されているものが多いです。(例:index.html) 一方、クリックするボタンによりモーダルの中身が変えようとすると面倒になります。(例:tasks.html) 動的なモーダルウィンドウの例 動的なモーダルウィンドウの例です。 クリックするタスクによって、モーダルの中身が違うのがわかると思います。 コードの説明 tasks.jsの中を簡単に説明してみます。このJSでは、メインの$appとmodalコンポーネントがあります。そして、もうひとつ、Hubというイベントハブ用のVueオブジェクトを
フレームワークの勉強のためにSymfony3でタスク管理アプリを作ってみました。まだ作ってる途中ですが、理解を深めるために作業内容をまとめてみます。少しは何かの参考になるかもしれません。 1.コントローラ編 2.エンティティ編 3.フォーム編 4.サービス編 5.番外編:GuardとEntityを使った認証 方針 作業を始めたときの最新バージョン、Symfony 3.2を利用します。 Symfonyフレームワークを覚えるのが目的なので、JavaScriptはjQueryを軽く使う程度で。古き良きウェブサイトを作ります(SPAではないです)。 参考 参考にしたのはSymfonyのウェブサイト、それと前に購入しておいた「基本からしっかり学ぶSymfony2入門」という本です。利用しているSymfonyはバージョン3ですが、Symfony2入門のコードはほとんど使えた気がします。Symfonyは
クラスを使ったコードを書いてはいるものの、どうにもオブジェク指向プログラミング(OOP)というものがわからない。クラスやオブジェクトはわかる。ではオブジェクト指向プログラミングとは何だ?と聞かれると言葉に詰まってしまう。 ちょっと前にバズった「オブジェクト指向と10年戦ってわかったこと」と、それに対するツッコミなどを読んでいるうちに、自分なりに納得できる説明を思いつたので書き残すことにしてみました。 慣れ親しんだPHPを使って説明してみます。 オブジェクトとは何か? むかーし、昔。OOPとは何か?みたいな話を同僚のエンジニアと話をしたことがあります。彼が言うには、「オブジェクトってのは、要はメモリ空間のことだよ」と。(※コメント参照) オブジェクトとはメモリ空間のこと クラスは設計図 一方、クラスというのは、オブジェクトの元になる設計図のようなもの。 まずはサンプルとしてクラスを考えます。
[追記:2018/03/04] ミドルウェアの仕様が「PSR-15: HTTP Server Request Handlers」として標準化されました。ここで説明した内容と大きく異るインターフェースが採用されてます。採用の経緯はこちらのPSR-15ブログ(英語)が参考になります。 PSR-7のフレームワークとしては、zend-expressive、SlimPHP/Slim 3、そしてフレームワークではありませんがRelay/Relayなどが出てきました。 嬉しいのは、ミドルウェアのAPIが全て同じことです。 use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\ResponseInterface; function __invoke( ServerRequestInterface $request, Respon
PHPのSlimフレームワークのバージョン3がリリースされたので、簡単に紹介してみます。 【2016/01/16:主にルーティングについて追記・変更しました】 SlimフレームワークはPHPのマイクロ・フレームワークのひとつです。今回のバージョン3は、 PSR-7とミドルウェア構造の採用、 インターフェースに依存することによる拡張性の高さ、 DIコンテナの利用(デフォルトはPimple)、 でも簡単に使い始められる、 のが特徴です。 何やら難しそうな単語が特徴に並んでますが、Slimのユーザーガイドを読めば、すぐ使えるぐらい簡単です。なので難しそうな特徴を中心に紹介してみます。 簡単に使える 本当に簡単に使えます。Slimのユーザーガイドからコードを貼り付けて、ちょっとコードを削っただけですが、これだけのコードで動きます。 <?php require dirname(__DIR__).'/
ごく普通のPaginationパッケージを作ったので、Qiitaで公開してみます。フレームワークやORMと密結合していない、オフセットとリミットを使うことを想定したページネーション用パッケージです。 特徴は、 ページ番号などをセッションに保存して、使い勝手を向上、 HTMLの生成オブジェクトを使って、柔軟性をもたせている。 PSR-7オブジェクトも使える、 といったところです。 ライセンスなどについてはGitHub参照してもらって… 何故作ったのかというと、Doctrine2を単独で使うプロジェクトがあったのですが、独立して使いやすいページネーションライブラリが見つからなかったからです。昔作ったコードを引っ張りだして作りなおしました。肝心のプロジェクトには間に合わなかったので、いまだ実際に使ったことのないパッケージなので注意して下さい。まだアルファ状態です。 簡単な使い方 HTMLフォーム
とうとう策定されたPSR-7(Http/Message)を使った場合、ファイルアップロードの処理がどうなるか書いてみました。 PSR-7の策定にまで持っていった「Matthew Weier O'Phinney」さんという方が作ったPSR-7実装「zendframework/zend-diactoros」を参考にしてます。他の実装では構築方法などが微妙に違うかもしれませんが、APIは同じになります。 サンプルコード アップロードフォーム 次のようなアップロードフォームを想定します。 <form method="post" enctype="multipart/form-data"> <input type="file" name="up[0]" /> <input type="submit" /> </form> use Psr\Http\Message\UploadedFileInterf
Psr7を使ってみたので感想を書いてみます。特徴はImmutable(不変オブジェクト)になっていること。それが何なのか興味があったので、不変オブジェクトを中心に書いてみます。 参考:PSR-7 By Example Psr7の基本 Psr7とは、PHP-FIGというグループが作っているHTTPリクエストとリスポンスの標準仕様のことです。コードはhttp-message at gitHubにて見ることができます。 細かいAPIについては、ドキュメントを参考に。必要そうなメソッドは大体入ってます。方向性としては必要最低限の仕様を作ろうとしているそうです。
上のコードはFatalエラーを発生します(するはず。実は走らせてない…)。クラスとtraitで同じメンバー変数がありますが、値が違うからです。同じにしてもE_STRICTエラーが発生します。 ならば、traitのprotected $helloを削除すればエラーがなくなりますが、traitで使っているメンバー変数が存在しないので、変です。それに$helloを持たないクラスで使うとエラーが出るかもしれません。 そんな時はgetter関数を使います。 例えばfunction getHello()。 更にtrait内でabstractメソッドを指定してあげると使い勝手が上がります。 trait HelloTrait { abstract protected function getHello(); function hello() { echo $this->getHello(); } } cl
サクラのレンタルサーバーで共有SSLを使ったら、PHPがhttpsと認識してくれなかった。本来なら、下記のコードで echo isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && $_SERVER['HTTPS']!== 'off'; 判定できるのだけれど、HTTPSの項目が抜け落ちてしまう。 書いてみると、意外と判定は面倒なのですね。 原因はプロキシサーバー サクラのホームページを見ると、共有SSLを使うと、プロキシとして動作すると書いてある。これが原因とのこと。 ややこしいのだけれど、httpsで接続しても、直接phpを叩く場合は問題ない。 この症状がでるのは、.htaccessなどでmod_rewriteしたような場合のみ。らしい。(この辺、よくわかってない)。 対処方法 共有SSLプロキシを使った場合、サーバー変数に「HTTP_X_SAK
ちょっとStackPHPについてを調べたので、まとめを書いてみます。 Middlewareとは何だろうと思い、調べているとStackPHPのウェブサイトやスライド(Do You Stack Up? (slideshare))が出てきます。考え方もコードも実に簡単なのですが、今ひとつ重要性がピンと来ませんでした。 が、このブログ「HttpKernel middlewares」を読んだら腑に落ちました。ということで、このブログを元に自分なりに理解した内容をまとめます。 HTTPの動作を理解する HTTP HTTPの基本は何でしょう? 簡単にPHPで表すと… function call($request) { /* do something */ return new Response($contents); } これだけ! HTTPのリクエスト($request)を受け取り、結果をRespon
初めてLaravelを使って本格的な開発をしました。簡単に動くし、開発も楽しかったのですが、このコードで大丈夫なのか?もっとよい書き方があるんじゃないかとずっと感じてました。 ベストプラクティスというと大げさですが、簡潔な記述で、読みやすくて、安全で、コピペのソースにしやすい コードを考えてみました。 サンプルのコントローラー 今回考えたいのは、コントローラーのコード。よくある割に複雑になりがちな、データ更新のメソッド、edit($i)とupdate($i)を取り上げてみます。 公式ドキュメントやよくあるサンプルコードだと、次のようなコードが多い気がする。 更新フォーム表示(edit) データのキーを受け取って、データを読み込んで、更新フォームを表示します。 function edit($i) { $entity = Entity::find($i); return View::make(
このページを最初にブックマークしてみませんか?
『@asaokameiのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く