atijust's blog

技術的なこととか。

Laravel + Codeception2 でブラウザテストを自動化する

この記事はLaravel Advent Calendar 2014 22日目です。今日はCodeceptionを使ったLaravelアプリケーションのブラウザテストの自動化を紹介したいと思います。 はじめに Webアプリケーションの開発現場でよくある光景として、ブラウザを使って人力でポチポチ…

Rocketeerを本格的に使うのに必要なちょっと進んだ機能

PHPのためのCapistrano風デプロイツール「Rocketeer」でLaravelをデプロイするの補足として、Rocketeerを本格的に運用する上で必要となってくるちょっと進んだ機能を紹介します。 複数のリモートホストを一括で操作する app/config/packages/anahkiasen/rock…

PHPのためのCapistrano風デプロイツール「Rocketeer」でLaravelをデプロイする

そろそろrsyncでデプロイするのは卒業したいな、ということでRocketeerというデプロイツールを導入してみました。 RocketeerはPHP製のCapistrano風デプロイツールです。PHP製なだけあってはじめからComposerやPHPUnitをサポートしてるし、当然だけど設定ファ…

さくらVPS(CentOS6)にNginx+PHP5.5+MySQL5.6の環境を構築する(設定編)

インストール編の続きです。 動作確認用のLaravelを用意する /var/www/testに動作確認用にLaravelをインストールします。 /var/www/testは所有ユーザ、グループともに作業用ユーザ(atijust)にし、nginxユーザの補助グループをatijustにすることで、Nginxと…

さくらVPS(CentOS6)にNginx+PHP5.5+MySQL5.6の環境を構築する(インストール編)

さくらVPS(CentOS6)にNginx+PHP5.5+MySQL5.6の環境を構築してLaravelを動かすまでの記録を備忘録として残しておきます。 Nginxのインストール 公式サイトのインストール方法の説明に従って、公式のyumリポジトリからStable版をインストールします。 まずは…

さくらVPSを借りて作業用ユーザでSSHできるようにするまで

個人でお遊びで使うにはEC2はコスパが微妙なので、さくらVPSを借りることにしました。rootでのログインを禁止し作業用ユーザで公開鍵認証を使ってログインできるようにするまでを備忘録としてメモしておきます。OSはCentOS6(64bit)です。 rootでログインする…

Laravelでテンプレート用のロジックを整理する方法

Laravel Advent Calendar 2013の15日目です。 robclancy/presenterでテンプレート用のロジックを整理する方法を紹介します。 テンプレート用ロジックの置き場所の問題 Laravelに限らずですが、Webアプリを開発していてぶち当たる問題として、テンプレート用…

Laravel4でView Composerの設定をする場所

View Composerの設定をする場所の私案。特にデフォルトの場所が決まってるわけではないので好きな場所で設定すればいいんだけど、かといってroutes,.phpに書くのもダサいので、収まりのいい場所を模索。 ServiceProviderで app/Atijust/ViewComposerProvider…

Laravel4でブログチュートリアルっぽいのをやってみた - その2

Laravel4でブログチュートリアルっぽいのをやってみた - その1では、記事の一覧と表示を実装した。今回は記事の投稿を実装する。編集、削除については実装しないことにした。編集と投稿はほとんど同じだし、削除はコードが短く特に面白いところもないので。 …

Laravel4でブログチュートリアルっぽいのをやってみた - その1

手を動かして覚えたいので、ちょうどいい課題としてCakePHPのブログチャートリアルっぽいのをLaravel4でやってみた。 動作要件 Lravel4の動作要件は以下の2つ。 PHP5.3.7以上 MCrypt拡張 手元ではPHP5.5.5と組み込みサーバで動作を確認している。 インストー…

SSH代替のmoshでMac OSX10.8(Mountain Lion)からEC2インスタンスに接続

WiMAX経由でEC2インスタンスにSSH接続して作業していると、時間帯によってはシェルの反応がもっさりだったり、接続が切れちゃったりでストレスマッハでハゲる。 そこで、回線品質が低い場合でも快適に作業できると噂のmoshを導入。 まずはMBA。インストーラ…

PHPのHTTPクライアントライブラリ「Guzzle」を使ってみる(その2)

php

その1のつづき。 Guzzleには、Service Descriptionといって、インターフェースをJSON(PHP配列でも可)で定義しておけば、コードを一行も書くことなくWebサービスにアクセスできる機能がある。 JSONでAPIのインターフェースを定義して { "operations": { "ge…

PHPのHTTPクライアントライブラリ「Guzzle」を使ってみる(その1)

php

Mobageのドキュメントがデベロッパー以外にも公開されたみたいですね。これでブログに気兼ねなくMobageネタが書けます。というわけで、さっそく。 GuzzleというHTTPクライアントライブラリが良さげなので、MobageのAPIにアクセスしてみました。OAuthプラグイ…

HerokuにNginx+PHP5.4+MySQLな環境を構築する

php

HerokuといえばRubyのためのPaaSという印象が強いのですが、ひっそりとPHPも使えます。しかし、PHPのバージョンが5.3.10と少し古いのが難点。そこで、サードパーティのbuildpackを使ってPHP5.4環境を構築してみました。buildpackというのは環境構築スクリプ…

Mac OSX10.8(Mountain Lion)にrbenvでruby-1.9.3&ruby-2.0.0を導入する

OSX 10.8.2のMacBook Airにrbenvを使ってruby環境を構築したときのメモ。 まずはHomebrewでrbenvとruby-buildをインストールする。 $ brew install rbenv $ brew install ruby-build XcodeのCommand Line Toolsで入るコンパイラはllvm-gccだかllvm-clangらし…

GitHub+Octopressでブログ構築

GitHub+Octopressでブログを構築したときのメモ。 今回はGithub PagesのUser& Organization Pagesにブログを設置する。 あらかじめアカウント名.github.comという名前のレポジトリを生成しておく。 サイトのURLはhttp://アカウント名.github.com/になる。 Ru…

CentOS6.2にgollumをセットアップしたときのメモ

ドキュメントはMarkdownで書いてGitで管理しているのですが、Webインターフェースがあると便利だな、ということでgithub/gollum · GitHubをセットアップしてみました。環境はCentOS6.2です。まずはRubyのインストール。1.8.7以前でしか動かないので注意。 # …

さくらのVPSに新しめのGitをインストール

対象とする環境はCentOS6.2 64bitです。 # rpm -q centos-release centos-release-6-2.el6.centos.7.x86_64 標準のパッケージにもGitはありますが、新しいのが使いたかったのでRPMForgeからインストールしてみました。まずはRPMForgeのインストール。http://…

ComposerのクラスローダをAPCで高速化

php

$loader = require __DIR__.'/vendor/.composer/autoload.php'; spl_autoload_register(function ($class) use ($loader) { $file = apc_fetch($class); if ($file === false) { $file = $loader->findFile($class); apc_store($class, $file); } return $fi…

コマンドラインのPHPでAPCを使う

php

CLIではデフォルトでAPCが無効になっている。CLIでもAPCを使えるようにするにはphp.iniでapc.enable_cliを1に設定する。 apc.enable_cli = 1APCのキャッシュはプロセスごとに独立しているのでCLIで使えたところで特に意味はない。スクリプトの実行が終わるた…

PHPの拡張モジュールをphpizeでビルドする方法

php

PECLではなくてphpizeで拡張モジュールをビルドしたときのメモ。PHPは/opt/php-5.3.10以下にインストールされているとします。 $ wget http://pecl.php.net/get/memcached-2.0.1.tgz $ tar xf memcached-2.0.1.tgz $ cd memcached-2.0.1 $ /opt/php-5.3.10/b…