タグ

ブックマーク / www.1x1.jp (19)

  • 「認証機能に学ぶ Laravel 5 アプリケーション」を発表しました #phpkansai

    第21回関西PHP勉強会にて、「認証機能に学ぶ Laravel 5 アプリケーション」というタイトルで発表しました。 Laravel 5 アプリケーションの作り方を知る題材に Laravel 5には、認証周りの機能がデフォルトプロジェクトに含まれています。そのまま利用できて便利というのはもちろんなのですが、はじめから存在する Laravel アプリケーションのサンプル実装という見方もできるので、これを題材に、アプリケーションの実装で活用できるノウハウをお話しました。 発表資料は、以下です。 勉強会では、これから Laravel を触るという方が多かったので、少しイメージしにくい部分があったかもしれません。今後、Laravel を使っていく中で、ヒントとなることもあると思うので、いつか思い出して頂けると嬉しいです。 これから Laravel を触るなら ちょうど良いが今日発売したので、よろ

    localdisk
    localdisk 2015/04/22
    わかりやすい。
  • AWS で請求金額にビックリしないようにやっておくべきこと - Shin x blog

    AWS は、従量課金なので、他者からの不正利用(来無いことですが)や想定外の利用で、翌月の請求が来て、ビックリということがあります。 私自身も関わっているプロジェクトで、ある月に平時の数倍の請求が来て、原因調査を行ったという経験がありました。 転ばぬ先の杖ということで、先にやっておくべきことについてまとめておきます。 1. AWSアカウントの不正利用を防ぐ まず、考えられるのが、アカウントを乗っ取られての不正利用です。もちろん、不正利用は、請求だけでなく、システムやリソースを守るという点でも防ぐべきことです。 そこで、AWS アカウントは、2要素認証(2段階認証 / 2 Factor authentication / 2FA)を設定しておきます。 手順は、下記のエントリがまとまっています。 AWSアカウント作ったらこれだけはやっとけ!IAMユーザーとAuthyを使ったMFA2段階認証

  • Composer を倍速にした、たった 1 行のコード

    まだ 12 月早々ですが、PHP ユーザに素敵なクリスマスプレゼントが届きました。 いまや使うのが当たり前となった Composer ですが、複雑な依存解決に実行時間がかかるのがネックでした。 これは日国内だけでなく、海外のユーザも同じで、皆がしょうがないと思いつつも、小さな不満を持ちながら使っていました。 そんな、ある�日、わずか 1 行のコードが追加されたことで、実行時間が、わずか半分になるという現象が起こりました。 Composer を倍速にするには? composer self-update を実行して、最新版にするだけです。 $ composer self-update 実際の効果 このコードの効果を見てみましょう。composer コマンドの --profile オプションを使って、実行時間と使用メモリ量を出力します。 $ composer update --dry-run

    localdisk
    localdisk 2014/12/04
    興味深い
  • Retina 5k iMac(Late 2014) が届いたので、環境構築メモ

    10 月末に発注した Retina 5k iMac(Late 2014)が、約一ヶ月待って、到着しました。 早速、日頃の開発に使えるようにセットアップしましたので、そのメモです。 0. セットアップ セットアップは、旧 iMac からの移行は行わず、クリーンインストールの状態から行っていきます。 1. OSX 環境設定 セキュリティとプライバシー FileVault で暗号化 ファイアウォールを入にする Dock 画面上の位置を「左」に 「Dock を自動的に隠す/表示」にチェック Spotlight 「21. Bing Web 検索」のチェックを外す キーボード 「キーボード」タブ 「キーのリピート」を右端(速い)に 「リピート入力認識」までの時間を右端(短い)に 「F1, F2 などのすべてのキーを標準のファンクションキーとして使用」にチェック 「修飾キー」をクリック Caps Loc

  • 「Ansibleではじめるサーバ作業の自動化」を発表してきました

    2014/10/11 に開催された PHPカンファレンス にて、「Ansibleではじめるサーバ作業の自動化」という発表を行ってきました。 午前中のセッションだったのですが、多くの方にご参加頂き、ありがとうございました。 発表資料 発表資料をslideshareに公開しました。 今回は、これからAnsibleを使ってみようという方を対象として、Ansibleの基的な内容をメインにしました。また、実際に私自身がPHPプロジェクトで採用した際のユースケースを紹介しています。 発表後、「Ansibleをやってみます!」という意見を頂けたので、このセッションの目的は達成することができました:D このセッションのフィードバックは、joind.in にて受けて付けています。すでにいくつか好評価を頂いていて安心していますが、もし良かったらお願いします。 https://joind.in/talk/vi

    localdisk
    localdisk 2014/10/22
    聞きたかったなあ
  • Ansible で EC2 インスタンスを起動して、Route53 に Public DNS を登録する

    Home > Ansible | AWS > Ansible で EC2 インスタンスを起動して、Route53 に Public DNS を登録する Ansible は、構成管理ツールとして認知されていますが、AWS 関連のモジュールが多数実装されており、各コンポーネントの起動や設定ができます。 このエントリでは、Ansible で、検証環境用の EC2 インスタンスを起動して、その Public DNS をRoute 53 に登録してみます。 以前書いたこのエントリの内容 を Ansible で自動化するイメージですね。 準備 今回は、AWS を操作するので、PythonAWS SDK である boto をインストールしておきます。boto は、pip なり、yum なりでインストールできます。 OSX $ pip install boto RHEL / CentOS $ rpm

  • Vagrant のプロビジョン時間を削減する vagrant-cachier プラグインが良い

    インストール vagrant-cachier プラグインをインストールするには、vagrant plugin install コマンドを実行するだけです。 $ vagrant plugin install vagrant-cachier Vagrantfile への記述 vagrant-cachier プラグインを有効にするには、Vagrantfile に下記の設定を行います。config.cache.scope では、キャッシュスコープを設定します。 下記では、:boxを指定しており、これは、プロビジョンでインストールしたパッケージを Box 単位でキャシュします。同一 Box を使う Vagrantfile であれば、別の VM でもキャッシュを共有することができます。 私の用途であれば、この設定が使いやすそうです。 あとは、通常どおり、vagrant up を行うとプラグインが有効と

  • Laravel 4 環境ごとの設定

    Laravel には、アプリケーションの設定を環境によって切り替える機構があります。これを使うことで、開発環境、ステージング環境、番環境、テスト環境で設定を切り替えることができます。 ここでは、Laravel 4.2 を対象とします。 環境設定の指定 環境設定の指定は、bootstrap/start.php の以下の箇所で行ないます。デフォルトでは、ホスト名がhomesteadの場合はlocal、それ以外はproductionとなります。 $env = $app->detectEnvironment(array( 'local' => array('homestead'), )); このdetectEnvironmentメソッドでは、クロージャが引数の場合、その戻り値を環境設定として扱うことができます。 私は、環境変数での切替の方が扱いやすいので、LARAVEL_ENVという環境変数の値

    localdisk
    localdisk 2014/09/16
    大体おんなじだ。append_config は知らなかった。真似しよう。
  • AWS EC2 インスタンス間の名前解決に Route 53 を使う

    Route 53 に EC2 インスタンスの Public DNS を CNAME で登録して、それを EC2 インスタンス間での通信でも利用するという話です。 1. 前提 EC2-Classic 環境 EC2 インスタンスの接続情報(FQDN なり IP なり)は、AWS のメンテナンスによる再起動などで変更される。 アプリケーションやミドルウェアで、別インスタンスに接続している場合、AWS から割り当てられる Public DNS や IP を設定ファイルなどに記述していると、変更の度に修正が必要になる。 DNSサーバを立てようとしたが、そこまで変更の頻度は多くない(日常的にインスタンス数が増減するわけではない)ので、正直わざわざ立てるほどでも無い。また、DNS サーバの面倒も見たくない。 2. やりたいこと Route 53 で各ホストの接続情報を管理すれば、一元管理できるし、修正も

  • Laravel の Queue で非同期処理を実装する(beanstalkd / IronMQ / SQS)

    Home > AWS | Laravel | PHP > Laravel の Queue で非同期処理を実装する(beanstalkd / IronMQ / SQS) Laravel で実装されている Queue について見てみました。 Laravel では Queue を使うことで、時間がかかる処理や、時間差で実行したい処理を非同期で実行することができます。 Laravel 4.2 の Queue では、以下の 5 つのキュードライバをサポートしています。 sync Beanstalkd Amazon SQS IronMQ Redis ここでは、sync、Beanstalkd、IronMQ、Amazon SQS について試してみました。 Laravel での設定 Laravel で Queue を使うには、app/config/queue.phpにて、利用するキューエンジンの選択、設定を

  • Heroku で作るスケーラブルな PHP アプリケーション

    第16回関西PHP勉強会で、「Heroku で作るスケーラブルな PHP アプリケーション」という発表をしてきました。 発表資料 Heroku でちゃんと動く PHP アプリケーションを作ると、自然とスケーラブルな構成になりますよ、という内容です。 会場でも、Heroku 自体は知っているが、まだ使ってはいないという人が多かったので、細かな Tips は省いて、こういった構成でやりますよというイメージをお話しました。 実際に構築する上での Tips などは、また別の機会に話してみたいです。 サンプルアプリケーション サンプルアプリケーションとして、簡単な画像アップロードサイトを Laravel 4.2 で作りました。 https://github.com/shin1x1/laravel-on-heroku アプリケーションデータは、以下のアドオンへ保存するようにしています。画像ファイルは、

  • 「VagrantユーザのためのDocker入門」を発表してきました

    第3回 コンテナ型仮想化の情報交換会@大阪 で行った発表です。 コンテナ超人みたいな人ばかりで、この内容で発表して良いものやらと思ったのですが、アプリケーションを書く側からの視点で話してきました。 Vagrant ユーザのための Docker 入門 Docker を知った時は、速くなった Vagrant のようなものだと思っていたのですが、色々と見る内にそもそも別のもので、ユースケースとして重なるところはあれど、別のツールだと認識した方が良いです。 Docker の入り口としては、デモを見てもらうのが、手っ取り早いので、そのあたりが伝わったなら良かったです。 Introduction to Docker 発表で引用した「Introduction to Docker」は下記です。公式の資料なので、色々ググる前に、まずはこれを読むのがおすすめです:D CentOS で Docker を動かす

  • Laravel ユーザなら知っておくべきAuthオートログインのこと

    Authフィルタによるオートログインについてです。 「ひとり Laravel Japan ツアー 2014」と称して、Laravel 福岡 と Laravel Meetup Tokyo vol.3 に参加してきました。 どちらでも発表を行ったのですが、ここでは、Laravel Meetup Tokyo で発表した Auth オートログインの資料を公開します。 Laravel では Auth という認証を行う機能があるのですが、標準でオートログイン機能が実装されています。 Login::attempt() というログイン処理を行うメソッドの第二引数にtrueを渡すだけで、オートログイン用のクッキーが発行され、もしログインセッションが切れても、自動でオートログインが行われます。 とても簡単に使えるのは良いのですが、暗号化したクッキーでのみ認証を行うので、利用には注意が必要です。 詳細は資料を確

    localdisk
    localdisk 2014/04/10
    外部に公開するときは、composer.json の post-install-cmd で php artisan key:generate を入れておくといいですよ。
  • Laravel コードで見るファサードクラスの仕組み

    Laravel の特徴として良く挙げられるファサードクラスの仕組みをコードで見てみました。 Laravel のファサードクラス Laravel では、Input::get()やRoute::get()など、クラスメソッドでフレームワークの機能を利用する場面が多くあります。 これは一見すると、InputやRouteクラスで提供されているクラスメソッドを実行しているだけに見えますが、これらのクラスにメソッドの実装があるわけではなく、実際はIoCコンテナに格納されているインスタンスのメソッドを実行しています。 例えば、InputであればIlluminate\Http\Requestクラス、RouteであればIlluminate\Routing\Routerのインスタンスメソッドが実行されます。 これらのインスタンスは、IoCコンテナにて管理されており、ファサードクラスのクラスメソッドが実行される

  • Vagrant 1.5 で追加された Rsync Synced Folder が良い

    Vagrant 1.5 がリリースされました。1.1 以来の big change ということで、目新しい機能が追加されています。 目玉はやはり Vagrant Share だと思うのですが、その他にも Web システムの開発に Vagrant を使っている人には嬉しい機能が追加されています。 その一つが Rsync Synced Folder です。 Vagrant には、ホストマシンとゲストマシンとでファイルを共有、同期する機能があります。 これにより、開発はホストマシンで行い、実行は LA(MP)P 環境であるゲストマシンで行うという、いいとこ取りができました。 この機能を実現する方法として、shared folder(VirtualBox の機能)や NFS を利用することができたのですが、これに rsync による同期が追加されました。 ホストマシンからゲストマシンへ rsync

  • Laravel コードからフレームワークの起動から終了までの流れを追う

    Laravel フレームワークが起動してから終了するまでの流れについて、コードを読んでみました。 今回読んだフレームワークのバージョンは、4.1.21 です。 エントリポイント エントリポイントは、public/index.php です。 このファイルではコメントが多数ありますが、実際に処理を行っている行は、下記の 3 行だけです。 このコードから想像できるように、オートローダの設定、フレームワークの設定、そして実行という流れです。 require __DIR__.'/../bootstrap/autoload.php'; $app = require_once __DIR__.'/../bootstrap/start.php'; $app->run(); それぞれについて見ていきます。 1. bootstrap/autoload.php ここでは、オートローダの設定を行います。Compo

    localdisk
    localdisk 2014/03/03
    Laravel のコード結構勉強になりますよ
  • Laravel でカスタムドライバを使って Remember Me(オートログイン)を実装する

    Laravel には remeber me 機能があるのですが、これは暗号化した Cookie の情報だけで認証を行うので、やや心許ない実装です。 そこで、Laravel フレームワークを拡張して、独自の認証処理ドライバを実装してみました。 ログイントークンテーブル 認証用ログイントークンを保存するテーブルを作成します。 まず、artisanコマンドでマイグレーションクラスを作成します。 $ php artisan migrate:make make_login_tokens 生成されたマイグレーションクラスにテーブル定義を書いていきます。 <?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class MakeLoginTokens extends Mi

  • PHP開発環境のサンプルVagrantfile

    PHPカンファレンス2013でPHP開発環境をVagrantで作る発表を行ったのですが、具体的なVagrantfileが欲しいという声を頂いたので、GitHubに公開しました。 ご自身で構築するベースになれば良いと思うので、どう作れば良いの?と言う方は参考にしてみて下さい。 なお、このリポジトリの Vagrantfile は、開発PC内の VirtualBox 上で開発環境として動かすことを想定しています。セキュリティについては考慮されていないのでご注意下さい。 vagrant-lapp-sample https://github.com/shin1x1/vagrant-lapp-sample このリポジトリは、PHPアプリケーション(CakePHP)をイメージしています。構成は以下です。 CentOS 6.4 Apache 2.2 PHP 5.4 PostgreSQL 9.3 phpPg

  • Vagrantをはじめてみたい方へ「Vagrant入門ガイド」を書きました

    「Vagrant入門ガイド」という電子書籍技術評論社さんから出版しました。Kindle ストア と Gihyo Digital Publishing にて購入できます。 Vagrantは、まだエンジニアが中心に触っている状況ですが、いずれはWebデザイナーやコーダーの方など、サーバ構築を自分ではやらない人にも、制作するWebサイト、システムの動作検証を行う環境として利用する場面が増えていくと思います。 blog エントリなども多数あるのですが、断片的な情報も多く、また、Vagrant自身の進化が早いため、最新の環境だと上手くインストールできなかったり、動かないということがままあります。(このblogの過去エントリも。。。) もちろん、じっくりと調べていけば解決できる問題なのですが、できれば、はじめの一歩くらいは、まとまった情報が日語であると良いなと思い、書を書きました。 目次 書は

  • 1