タグ

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

  • さあ、AWSをはじめよう! for PHPer

    春ということで、Amazon Web Services(AWS)をはじめてみませんか。 AWS盛り上がっていますね。2011年3月に東京リージョンができたことで、そろそろ触ってみようかなというPHPユーザの方も多いかと思います。 そんなあなたへ、AWSをはじめる際に役立つ情報をご紹介です。 1. AWSアカウントを新規作成して、EC2の利用申し込みを行う まずAWSのアカウントを作成して、EC2の利用申し込みを行います。 手順については、AWSエバンジェリストの @KenTamagawa さんが書かれた以下の資料が参考になります。このとおりに進めていけば、おおよそ問題無いと思います。 進める中で自分が詰まった点は以下。 郵便番号、電話番号にはハイフンを 郵便番号、電話番号はハイフンが必要なので入力するようにして下さい。 書式は日国内のもの、郵便番号8ケタ(ハイフン入り)、電話番号は12〜

  • Laravel DB テーブルの簡易メンテ画面を作る Laravel-Table-Admin を作りました

    マスタテーブルのメンテナン画面は、単純な CRUD 画面なのですが、テーブル数が多いと、いちいち作るのも手間がかかります。 そこで、Laravel のパッケージとして、Laravel-Table-Admin を作りました。 https://github.com/shin1x1/laravel-table-admin Laravel の対象バージョンは、4.1 以降としています。 何をするものか マスタテーブルのメンテナンス画面など、ごく単純な CRUD 画面だけを作るパッケージです。 作るといっても、コードジェネレータではなく、設定を行えば、自動でテーブルスキーマから画面を動的に構築します。CakePHP の Scaffold と似た発想です。 いわば、機能がごくシンプルになった phpMyAdmin / phpPgAdmin を Laravel アプリケーションに組み込めるというものです

  • PhpStorm 8 で、Vagrant VM の PHPUnit を IDE から実行する

    Home > PHP | PhpStorm | Vagrant > PhpStorm 8 で、Vagrant VM の PHPUnit を IDE から実行する PhpStorm 8 が、リリースされましたね! PHP 5.6 や Laraevel の blade 対応など気になる新機能があるのですが、その中でも、注目なのが、PHPUnit by Remote Interpreter です。 この機能を使うことで、Vagrant VM にインストールされている phpunitホストPhpStorm から直接実行することができます。Vagrant による開発が普及してきた今では必須の機能といえるでしょう。 利用するには、いくつか設定が必要となるので、その手順を書いてみます。 対象の PHP アプリケーション このエントリでは、以下の環境で PHP アプリケーション開発しているという想

  • 「先取り!PHP 7 と WordPress」を発表しました

    今年の 11 月にリリース予定の PHP 7 上で、WordPress を動かすとどうなるか、ということをデモを交えて紹介しました。 デモでは、9 年間稼働しているブログ(Shin x blog)のコードを PHP 7 で動かしたりしてみました。そのままは動かないので、エラーメッセージを表示して、修正して、という作業を壇上で行い、最終的には表示するところまで進めました。PHP 7 への移行作業の雰囲気が伝われば嬉しいです:) WordPress では、PHP 7 の新機能よりも、パフォーマンスアップの方が恩恵が大きいと思うので、PHP 5.6 との比較も行っています。 WordCamp Kansai 2015 雑感 私は、2 日目の夕方のセッションだったので、午後に会場入りして、いくつかセッションを見ていました。そこで感じたのが以下でした。Web エンジニアが見て面白いセッションがいくつ

  • Laravel 4 環境ごとの設定

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

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

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

  • 一冊まるごと Laravel な「Laravelエキスパート養成読本」が出ます

    Laravelエキスパート養成読」が、2015/04/21に出版されます。このの執筆に参加しました。 昨今、話題のフレームワーク Laravel ですが、ようやく日語での書籍が登場します。これまで、和訳された電子書籍はあったのですが、紙の書籍としては、国内初となります。 目次 目次は、下記のようになっています。バージョンは、Laravel 4 をベースにしており、新機能紹介として、Laravel 5 の内容を加えています。 Chapter1. Laravel をはじめよう Chapter2. MVC モデルが基礎からわかる Chapter3. IoC コンテナ、ファサード、サービスプロバイダ、Eloquent Chapter4. Laravel 5 新機能紹介! Special. PHP フレームワーク最新事情 Chapter5. 実践!REST API アプリケーション La

  • AWS で請求金額にビックリしないようにやっておくべきこと - Shin x blog

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

  • CakePHP2 アプリケーションを Heroku で動かす設定

    CakePHP2 アプリケーションを Heroku 上で動かす設定についてです。 以前のエントリにも書きましたが、Heroku で Web アプリケーションを動かす際に重要なのは、Web サーバ自体(Heroku では、Dyno)に、アプリケーションの状態(データ、セッション情報、ログ等)を保持させないということです。 Heroku の Dyno は、デプロイの際や、定常的な再起動により、破棄されるため、記録されたファイルは消えてしまいます。よって、こうしたデータファイルは、アドオンなど外部に記録する必要があります。 Heroku では、アドオンを活用するのがポイントですので、ここでは、主に CakePHP アプリケーションからこうしたアドオンと連携する方法を見ていきます。 Environments Library as a plugin まず、開発環境と Heroku 環境で設定値を切り

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

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

  • [書評] CakePHPで学ぶ継続的インテグレーション

    著者の @kaz_29 さんから「CakePHPで学ぶ継続的インテグレーション」を献して頂きました。日頃から関心のある分野なので、早速読ませて頂きました。 PHP で学ぶ継続的インテグレーション 書のタイトルは「CakePHPで学ぶ継続的インテグレーション」です。実際、書の中では、CakePHPアプリケーションを題材に継続的インテグレーションを行う手法が解説されています。 ただ、ここで紹介されている継続的インテグレーションの手法は、CakePHP 固有のものではなく、他のフレームワークでも転用可能なものです。 勝手なお世話ですが、書籍のタイトルとしては、「PHPで学ぶ継続的インテグレーション」の方が、良かったかもしれませんね:D 分散された情報がこの一冊に 継続的インテグレーション(CI)を行うには、あるツールさえ入れておけばできるというものではなく、多くのツールを組み合わせる必要が

  • 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 を行うとプラグインが有効と

  • PHP コードの整形はプログラマがやるべきことじゃない

    PHP には、PSR が策定されたおかげで、これをベースにコーディングスタイルがある程度整ってきました。 ここ近年開発がはじまったプロジェクトなら、PSR-1/2 をコーディングスタイルとして採用しているプロジェクトも多いのではないでしょうか。 せっかく採用したなら、実際に書くコードはできるだけこの基準に沿うようにしたいものです。ただ、ここにあまり手間をかけるのも末転倒です。そこで、手間をかけずに、コーディングスタイルに従えるような方法を模索してみました。 開発環境には、PhpStorm を使う前提です。 PhpStorm の PSR1/PSR2 ルール まず、PhpStorm の Code Style で、PSR1/PSR2 をルールとして設定しました。 プロジェクト毎に規定したいので、Scheme はProjectにして、set from...をクリックして、Predefined S

  • PhpStorm から Vagrant VM の PHP アプリケーションをリモートデバッグする(Web & CLI)

    Home > Laravel | PHP | PhpStorm | Vagrant > PhpStorm から Vagrant VM の PHP アプリケーションをリモートデバッグする(Web & CLI) PhpStorm から Vagrant で構築した VM の PHP アプリケーションをリモートデバッグする方法です。Web アプリケーションだけでなく、CLI アプリケーションでもリモートデバッグできるように設定していきます。 VM スペック 192.168.33.41 を private network で設定 PHP + Xdebug がインストール済み ホストと VM は、synced folder でディレクトリを共有(/path/to/src -> /share) 0. Xdebug によるリモートデバッグの仕組み リモートデバッグを設定する前に PhpStorm と Xd

  • 「PHPコードではなくPHPコードの「書き方」を知る」を発表してきました

    PHPカンファレンス関西2014で「PHPコードではなくPHPコードの「書き方」を知る」を発表してきました。 写真提供:久岡写真事務所 別トラックに人気セッションがひしめく中、多くの方に聴いて頂き、ありがとうございましたm(_ _)m 発表内容 PHP 中級者(中級がどこかというのはありますが)を目指す初心者の方を対象に、FizzBuzz のコードを、関数にまとめて、クラス化するというのをライブコーディングで行いました。 また、関数にまとめた段階で、自動テストを書いて、実行結果を目で確認するのではなく、テストを実行して確認するというスタイルを取りました。 発表資料は以下です。 コードを書きながら進めていく形なので、資料だけでは少し伝わらない部分があるかもしれません。 デモで書いた PHP コードは、GitHub で公開しています。Sample1, Sample2 とディレクトリが分かれてい

    m_shige1979
    m_shige1979 2014/06/30
    プレゼンテーションモード?
  • Heroku で作るスケーラブルな PHP アプリケーション

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

  • PHP 定義されている情報(クラス、関数、変数等)を取得する関数まとめ

    PHP には、定義されているクラスや関数、変数などの一覧を取得する関数があります。 ここでは定義情報を取得できる関数群をまとめてみました。ここでは実行例として、Laravel アプリケーションのビューテンプレート(hoge.blade.php)で実行した内容を記載しています。 定義された情報を取得する関数群 get_defined_constants() 定義されている定数を連想配列として取得します。キーが定数名で、要素がその値となっています。 http://www.php.net/manual/ja/function.get-defined-constants.php 出力してみると、1771 個の定数がありました。内容を見ると、フレームワークやアプリケーションで定義されたものの他に、PHP体や extension で多数の定数が定義されていることがわかります。 array (size

  • Vagrant体験入門ハンズオンの資料を公開します

    2014/04/24 DevLove関西にて、Vagrant体験入門を行いました。 これからVagrantを使ってみようという方向けに、Vagrantを触ってみようというイベントです。 前半にVagrantの概要を話すセッションを行ない、その後ハンズオンで実際にVagrantに触れてみるという構成でした。 発表資料 前半で、Vagrantの概要を話した際の資料です。 ハンズオンをはじめるにあたって、下地となる内容を話しました。 Vagrant に関する発表は何度か行っていますし、blogを書く際にも何度と無く調べていますが、Vagrant自体の進化が速いので、見直すたびに発見があって面白いです。 ハンズオン資料 ハンズオンの手順は Gist にまとめることが多いのですが、今回は Qiita に書きました。Kobito があるとサクサク書けるのが良いですね。 http://qiita.c

  • PHP 5.6 に採用されるデバッガ phpdbg を使ってみた

    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 の 11 日目です。 日常が忙しく、新しい技術なんか追ってられない。わかります。 そんなの使うかどうかも分からないのに今やる必要無いよね。困った時に探せば良いでしょ。それもわかります。 そんな忙しい毎日だからこそ、技術の「種」くらいは蒔いておきましょうという話です。 技術の種 「技術の種」とは何でしょう。 私がイメージしているのは、その技術のイメージをざっくりと朧気ながらで良いので掴んでおくということです。(ユースケースもあるとより良いです。) きちんと土を掘って、一つ一つ植えられれば良いのですが、じっくりと植える時間はなかなか無いと思うので、とりあえずバサッとで良いので、撒き散らしておきます。 そうしておいた種は、何かのきっかけで芽を出すことがあります。 多くは解決すべき問題に直面した時です。この問題は手元の技術では解決で