サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16
www.1x1.jp
JAWS-UG三都物語 2014 にて「開発現場で活用するVagrant」という発表を行いました。 Photo By Yuko Oshima 5 つトラックがあるなか、テクニカルトラックでの発表でした。開放感を感じる会場で、快適にセッションを行うことができました。 発表内容 Vagrant を現場で活用していく上で参考になる情報を、と考えたところ、やはり実際に動くデモが良いと思い、デモを中心にセッションを行いました。 発表資料は、以下です。 デモで利用した Varantfile などは、下記で公開しています。 https://github.com/shin1x1/vagrant-demo-20140705 デモでは、同じ PHP アプリケーションについて仮想環境やプロビジョニングツールを変えて構築を行いました。(実際に一からコードを書く時間が無かったので、できあがったものをお見せする形でし
2014 年も残すは、あと 1 週間になりました。今年も様々なイベントで登壇しましたので、発表したセッションと資料をまとめてみます。 写真提供:久岡写真事務所 登壇イベント 2014/04/04 「わかってるフレームワーク Laravel」Laravel勉強会福岡 「わかってるフレームワーク Laravel」とうタイトルで発表しました。 Laravel で、とあるプロジェクトの開発が終わった後だったので、Laravel への良さを主観たっぷりでお話しました。 翌日の Laravel Meetup Tokyo と合わせて、一人 Laravel Japan ツアーでした:D 2014/04/05 「知っておくべき Auth オートログイン」 Laravel Meetup Tokyo vol.3 Laravel 4.1.25 以前にあった Auth フィルタ利用時のオートログインの問題点について
PHPカンファレンス関西2014で「PHPコードではなくPHPコードの「書き方」を知る」を発表してきました。 写真提供:久岡写真事務所 別トラックに人気セッションがひしめく中、多くの方に聴いて頂き、ありがとうございましたm(_ _)m 発表内容 PHP 中級者(中級がどこかというのはありますが)を目指す初心者の方を対象に、FizzBuzz のコードを、関数にまとめて、クラス化するというのをライブコーディングで行いました。 また、関数にまとめた段階で、自動テストを書いて、実行結果を目で確認するのではなく、テストを実行して確認するというスタイルを取りました。 発表資料は以下です。 コードを書きながら進めていく形なので、資料だけでは少し伝わらない部分があるかもしれません。 デモで書いた PHP コードは、GitHub で公開しています。Sample1, Sample2 とディレクトリが分かれてい
マスタテーブルのメンテナン画面は、単純な CRUD 画面なのですが、テーブル数が多いと、いちいち作るのも手間がかかります。 そこで、Laravel のパッケージとして、Laravel-Table-Admin を作りました。 https://github.com/shin1x1/laravel-table-admin Laravel の対象バージョンは、4.1 以降としています。 何をするものか マスタテーブルのメンテナンス画面など、ごく単純な CRUD 画面だけを作るパッケージです。 作るといっても、コードジェネレータではなく、設定を行えば、自動でテーブルスキーマから画面を動的に構築します。CakePHP の Scaffold と似た発想です。 いわば、機能がごくシンプルになった phpMyAdmin / phpPgAdmin を Laravel アプリケーションに組み込めるというものです
いよいよ、今週末にPHP カンファレンス関西 2014が開催されます。 Photo by tenshow 今年で、4 回目の開催となるのですが、こうしたイベントに初めて参加する、という方も多いのではないでしょうか。 そこで、リレーブログ 12 日目の今日は、はじめてカンファレンスに参加する方に向けて、気になるあれこれを書いてみたいと思います。 (昨日のリレーブログは、@tanakahisateru さんの うまれかわるMVC 〜PHPカンファレンス関西2014にむけてでした。) 服装 いきなり服装?という人がいるかもしれませんが、実は初めてだと気になったりします。 みんなスーツとかだったらどうしよう。いちおうジャケットくらい羽織ろうかな、いや、Tシャツとデニムの人ばかりだと浮くかも、うーーん。。。 分かります。ちゃんとしてる人ほど気になるポイントですね。 はい、お答えしましょう。 外を出歩
第16回関西PHP勉強会で、「Heroku で作るスケーラブルな PHP アプリケーション」という発表をしてきました。 発表資料 Heroku でちゃんと動く PHP アプリケーションを作ると、自然とスケーラブルな構成になりますよ、という内容です。 会場でも、Heroku 自体は知っているが、まだ使ってはいないという人が多かったので、細かな Tips は省いて、こういった構成でやりますよというイメージをお話しました。 実際に構築する上での Tips などは、また別の機会に話してみたいです。 サンプルアプリケーション サンプルアプリケーションとして、簡単な画像アップロードサイトを Laravel 4.2 で作りました。 https://github.com/shin1x1/laravel-on-heroku アプリケーションデータは、以下のアドオンへ保存するようにしています。画像ファイルは、
PHP で配列の要素にアクセスして、処理を行うには、for や foreach を使うのがおなじみです。 この方法でも良いのですが、PHPには、それ以外にも配列を走査する関数やライブラリがあります。ここでは、配列を走査して処理を行う方法を見てみましょう。 サンプル仕様 このエントリで以下の配列を処理対象とします。array.phpで保存されている想定です。 <?php return [ [ 'id' => 1, 'year' => 1993, 'name' => 'Harada', ], [ 'id' => 2, 'year' => 2001, 'name' => 'Kato', ], [ 'id' => 3, 'year' => 2009, 'name' => 'Aoyama', ] ]; この配列について処理を行います。 配列内に連想配列が格納されており、nameとyearというキーを
PHP には、定義されているクラスや関数、変数などの一覧を取得する関数があります。 ここでは定義情報を取得できる関数群をまとめてみました。ここでは実行例として、Laravel アプリケーションのビューテンプレート(hoge.blade.php)で実行した内容を記載しています。 定義された情報を取得する関数群 get_defined_constants() 定義されている定数を連想配列として取得します。キーが定数名で、要素がその値となっています。 http://www.php.net/manual/ja/function.get-defined-constants.php 出力してみると、1771 個の定数がありました。内容を見ると、フレームワークやアプリケーションで定義されたものの他に、PHP本体や extension で多数の定数が定義されていることがわかります。 array (size
Heroku が PHP をサポートしたので、テストがてら Laravel アプリケーションをデプロイしてみました。 デプロイしたのは、Doctrine を利用するアプリケーションだったのですが、ローカルでは composer でインストールできるのですが、Heroku にデプロイするとインストールされないという現象が起こりました。 Laravel での Doctrine 使用 今回のアプリケーションでは、DBのテーブルスキーマ情報を読み込んで、動的に画面を作るという処理があり、そこで Doctrine の SchemaManager を使っていました。 Laravel で、Doctrine の SchemaManager のインスタンスを取得するのは簡単で、下記のメソッドを実行するだけです。 $manager = DB::connection()->getDoctrineSchemaMa
2014/04/24 DevLove関西にて、Vagrant体験入門を行いました。 これからVagrantを使ってみようという方向けに、Vagrantを触ってみようというイベントです。 前半にVagrantの概要を話すセッションを行ない、その後ハンズオンで実際にVagrantに触れてみるという構成でした。 発表資料 前半で、Vagrantの概要を話した際の資料です。 ハンズオンをはじめるにあたって、下地となる内容を話しました。 Vagrant に関する発表は何度か行っていますし、本やblogを書く際にも何度と無く調べていますが、Vagrant自体の進化が速いので、見直すたびに発見があって面白いです。 ハンズオン資料 ハンズオンの手順は Gist にまとめることが多いのですが、今回は Qiita に書きました。Kobito があるとサクサク書けるのが良いですね。 http://qiita.c
第3回 コンテナ型仮想化の情報交換会@大阪 で行った発表です。 コンテナ超人みたいな人ばかりで、この内容で発表して良いものやらと思ったのですが、アプリケーションを書く側からの視点で話してきました。 Vagrant ユーザのための Docker 入門 Docker を知った時は、速くなった Vagrant のようなものだと思っていたのですが、色々と見る内にそもそも別のもので、ユースケースとして重なるところはあれど、別のツールだと認識した方が良いです。 Docker の入り口としては、デモを見てもらうのが、手っ取り早いので、そのあたりが伝わったなら良かったです。 Introduction to Docker 発表で引用した「Introduction to Docker」は下記です。公式の資料なので、色々ググる前に、まずはこれを読むのがおすすめです:D CentOS で Docker を動かす
Authフィルタによるオートログインについてです。 「ひとり Laravel Japan ツアー 2014」と称して、Laravel 福岡 と Laravel Meetup Tokyo vol.3 に参加してきました。 どちらでも発表を行ったのですが、ここでは、Laravel Meetup Tokyo で発表した Auth オートログインの資料を公開します。 Laravel では Auth という認証を行う機能があるのですが、標準でオートログイン機能が実装されています。 Login::attempt() というログイン処理を行うメソッドの第二引数にtrueを渡すだけで、オートログイン用のクッキーが発行され、もしログインセッションが切れても、自動でオートログインが行われます。 とても簡単に使えるのは良いのですが、暗号化したクッキーでのみ認証を行うので、利用には注意が必要です。 詳細は資料を確
Macbook Air の OS をクリーンインストールしたので、OS 起動後に行った環境構築のメモです。 1. OSX 環境設定 OSX 関連の設定は、以前に書いた下記エントリの内容で行います。 下記は Moutain Lion のものなので、若干、設定項目の表記や位置が異なりますが、概ねこの通りで。 http://www.1×1.jp/blog/2012/06/macbook_air_system_preferences.html 2. Homebrew、コマンドラインツール、XCode インストール アプリは、Homebrew cask と Brewfile を使ってインストールしたいので、Homebrew をインストールします。 $ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
Laravel の特徴として良く挙げられるファサードクラスの仕組みをコードで見てみました。 Laravel のファサードクラス Laravel では、Input::get()やRoute::get()など、クラスメソッドでフレームワークの機能を利用する場面が多くあります。 これは一見すると、InputやRouteクラスで提供されているクラスメソッドを実行しているだけに見えますが、これらのクラスにメソッドの実装があるわけではなく、実際はIoCコンテナに格納されているインスタンスのメソッドを実行しています。 例えば、InputであればIlluminate\Http\Requestクラス、RouteであればIlluminate\Routing\Routerのインスタンスメソッドが実行されます。 これらのインスタンスは、IoCコンテナにて管理されており、ファサードクラスのクラスメソッドが実行される
Vagrant 1.5 がリリースされました。1.1 以来の big change ということで、目新しい機能が追加されています。 目玉はやはり Vagrant Share だと思うのですが、その他にも Web システムの開発に Vagrant を使っている人には嬉しい機能が追加されています。 その一つが Rsync Synced Folder です。 Vagrant には、ホストマシンとゲストマシンとでファイルを共有、同期する機能があります。 これにより、開発はホストマシンで行い、実行は LA(MP)P 環境であるゲストマシンで行うという、いいとこ取りができました。 この機能を実現する方法として、shared folder(VirtualBox の機能)や NFS を利用することができたのですが、これに rsync による同期が追加されました。 ホストマシンからゲストマシンへ rsync
最近の PHPer が集まれば、一度は話題に上がるのが、この composer install をどこで実行するのか問題。 これまで聞いた話をまとめると、大きく分けて、以下の2パターンになります。どちらの方法を取っているか教えて下さい 😀 0. 前提 前提ですが、以下のような方法で、Composer 関連のファイルは管理しているとします。おそらく多くはこのような形になっていると思います。 PHP コードは、Git などの VCS で管理する。 composer.json, composer.lock は、VCS で管理する。 composer.phar, vendor/ は、VCS で管理しない。 また、今回対象としているのはアプリケーションで、Packagist に登録して、配布するようなフレームワークやライブラリは対象外です。 1. 本番サーバで実行 本番PHPサーバ上で compo
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
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
最近は Laravel + AngularJS で Web アプリケーションを開発する毎日です。 少し時間が取れたので Laravel フレームワークのソースを読んでいます。その中から Laravel の肝でもある IoC コンテナの使い方をまとめてみました。 Laravel の IoC コンテナ Laravel で使われている IoC コンテナは、Illiminate\Foundation\Applicationクラスです。これはIlliminate\Container\Containerクラスを継承したもので、コンテナとしての基本機能はIlliminate\Container\Containerクラスが担っています。 Laravel アプリケーションで、この IoC コンテナを利用する際は、AppクラスというIlliminate\Foundation\Applicationのファサード
新年、あけましておめでとうございます。旧年中はお世話になり、誠にありがとうございました。 2014年に入って、はじめのエントリということで、2013 年のふりかえりと2014年の抱負などを書いてみたいと思います。 2013年ふりかえり 2013年は、最初のエントリでも書いたように、体質改善を行い、俊敏に動ける状態を作る一年でした。 そのために大きな決断も行いました。関係各位にご心配をおかけすることになったことは心苦しいのですが、ご理解頂き、後押しして頂けたこと、本当に感謝しております。結果がどうでるかは今後の頑張り次第なので、一歩づつやっていきたいと思います。 この体質改善には、意外に時間がかかりました。特にそれを感じたのは、考え方の変化です。それまでの体質で動いている状態での考えと、体質を変えていく中で考えることは、自ずと変化していきます。以前は当たり前だと感じていたことが、そうではなく
Shin x blog Advent Calendar 2013 無事に完走できました!ご覧いただいたみなさんありがとうございました。 年の瀬の慌ただしい時期に12/1から12/25まで、毎日 blog を書くという荒行?を行ったのですが、なんとかやり終えて感じたことなどを書いてみます。 ブログ筋を鍛える この企画をはじめようと思った目的は、書きたいけど書けていないネタを書いてしまいたいということです。 これがメインではあるのですが、裏テーマとしては、もっと早く書けるようになりたいというのもありました。書きたいけど、時間がかかるので敬遠しているという面もあったりするので、何とか早くアウトプットできればなあ、と。 そこで今回は早く書いて公開するためのブログ筋を鍛えるべく、事前にストックは書かずに、ぶっつけで書き始めることにしました。 期間中にお会いした方に「書きためていますよね?」と聞かれた
Shin x blog Advent Calendar 2013 の最終日です。 12/1 から毎日書いてきた Shin x blog Advent Calendar 2013 ですが、いよいよ今日が最終日です。 今日は、クリスマスということで、ささやかながらちょっとしたプレゼントを用意してみました:D VagrantX GUI で Vagrant が利用できる VagrantX というツールをリリースしました。 http://shin1x1.github.io/vagrantx/ Vagrant は、とても良いツールなのですが、いかんせんターミナル(黒い画面)で操作するものなので、それに慣れていない人にとっては、少し敬遠されている面があります。Vagrantfile を自分で書くような人はターミナルでどんどん使うべきなのですが、用意された Vagrantfile をただ使うだけであれば、
Shin x blog Advent Calendar 2013 の 24 日目です。 先日リリースされた vagrant-serverspec を使って、テストドリブンなサーバ構築を行ってみました。 vagrant-serverspec は、サーバ、インフラの状態をテストするツール serverspec を Vagrant のプロビジョナとして実行できるプラグインです。これを使うことで、vagrant コマンドから、serverspec のテストを実行することができます。 詳しくは、@ryuzee さんの下記エントリを参照して下さい。 vagrant-serverspecを使ってプロビジョニング結果をテストする | Ryuzee.com 仕様 今回構築するサーバの仕様は下記です。PHP 5.5.x をインストールして、ビルトインサーバを起動するというものです。(※ちなみにビルトインサーバ
Shin x blog Advent Calendar 2013 の 23 日目です。 今年一年を振り返った時に、一番インパクトがあったのは Vagrnat でした。 昨年までも存在は知っていたものの、本質を理解しておらず、単に仮想マシンをコマンドで扱えるもの程度の認識でした。今年に入り、利用法が分かった後は、開発環境や検証環境などを構築するのに大いに役立っています。 Vagrant はパッケージとしてよく出来ており、それまで一部の人しか扱わなかった仮想化環境を多くの人に解放してくれました。ここでは、Vagrant の構成から、システムインテグレーションを行う上でのヒントを見出してみたいと思います。 既存技術をインテグレーションしたツール まず、Vagrant で興味深いのは、基礎的な技術要素は、Vagrant 自身では提供しておらず、外部のソフトウェアやサービスを利用しているという点です
Shin x blog Advent Calendar 2013 の 22 日目です。 「世界を変えたいんです!」 インターネット上やイベントなどでたまに見聞きする言葉です。それを聞くたびに何か違和感のようなものを感じていました。 世界を変える? 「世界を変えたい!」というフレーズは、威勢が良く、何か立派な志のように聞こえます。その想いは素晴らしいとは思うのですが、聞いている方からすると結局何がやりたいのかが分からず、「なんかすごいね」程度しか感じなかったりもします。 「世界を変える」ということは、変える前と変えた後の世界があり、その二つの世界には何かしらの差分があるはずです。この差分を作り出すこと = やりたいということであれば、その差分をそのまま伝えたほうが良いのではないでしょうか。 ガンで死ぬ人を無くしたい、飢餓を無くしたい、空飛ぶ自動車を作りたい、人型ロボットを作りたい、みんなが夢
Shin x blog Advent Calendar 2013 の 21 日目です。 第 12 回関西 PHP 勉強会 にて、PHP 5.6 に採用予定の phpdbg をひと足先に PHP 5.5.7 で触ってみました。 phpdbg phpdbg は、gdb ライクな PHP 用のデバッガです。ブレークポイントを設定して、その時点のコンテキストを確認したり、ステップ実行などができます。 phpdbg | php debugger インストール PHP 5.6 から同梱される予定の phpdbg ですが、これ自体はすでにリリースされており、PHP 5.4 から利用することが可能です。インストールには、PHP のソースコードが必要になるので、PHP も ソースからインストールします。 $ sudo yum -y groupinstall "Development Tools" $ sud
Shin x blog Advent Calendar 2013 の 20 日目です。 今年も色々な勉強会やイベントを開催したり、参加したりしたのですが、自分の中で、これが合うかも、という形が見えてきました。 それが「もくもく勉強会」というイベントです。 もくもく勉強会 もくもく勉強会は、もくもく会と勉強会を合わせた造語です。こういったジャンルがあるか分からないですが、もくもく会よりもきちんとしていて、勉強会よりもゆるいというイベントという意味合いで付けました。 実際には、「PHP もくもく勉強会」のように、テーマとする技術やプロダクト名などを付けてイベント名とするイメージです。 何をするかというと、詳細はイベントによって異なるとは思いますが、基本的には、参加者が自分で課題や作業を持ってきて、それをひたすらこなすというだけのイベントです。同じ会場には集まりつつ、みんな「黙々と」作業するので
Shin x blog Advent Calendar 2013 の 19 日目です。 2000年に個人事業として1×1を開業しました。それから 5 年後の 2005 年に有限会社として法人化(法人成り)を行いました。(その後、組織変更を経て、現在は株式会社です。) 個人事業から法人化した経緯や理由について書いてみます。 法人化への思い 当時、受託開発をメインに行っていました。仕事を受注して、家でこなすというスタイルが多かったのですが、仕事上で法人格を要求されることはなく、個人事業でも困ることはありませんでした。(今にして思えば、その時点で選別されていたのだと思います。) 開業した頃はとにかく食い扶持を稼ぐのに必死で、法人化など考えもしなかったのですが、ある程度、売上が立つようになると、「次のステップ」というのを考えるようになりました。 なんとなく、次のステップとしての法人化を意識しつつ、
Shin x blog Advent Calendar 2013 の 18 日目です。 ChatWork API のプレビュートークンを頂いたので、早速使ってみました。 今回作ったのは、電話をかけて音声で伝えたい人と、電話はかけて欲しくない、チャットで要件伝えて下さい、という人を繋ぐものです。 Twilio と ChatWork を使って留守番電話 これは、Twilio と ChatWork を使い、電話がかかってきたら、チャットで着信を知り、録音された音声が聞けるというものです。いわば留守番電話をチャットから聞くという感じですね。 全体の流れは下記の図になります。 ソースコードは GitHub にて公開しています。 shin1x1/twilio-chatwork-voice-message Twilio との連携 まず、かかってきた電話を Twilio で受けます。Twilio では、着
次のページ
このページを最初にブックマークしてみませんか?
『1×1株式会社|Webシステムの技術パートナー』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く