タグ

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

  • 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

  • 自分流 Laravel 4 アプリケーションアーキテクチャ

    Laravel Advent Calendar 2014 の 9 日目です。 今年の Advent Calendar では、Laravel 5 リリース目前ということで、Laravel 5 の話題が多いのですが、それは他の方にお任せして、ここでは、Laravel 4 でのアプリケーション実装について書いてみます。 Laravel は自由度の高いフレームワークですので、アプリケーションも自由な構成にすることができます。ただ、この「自由さ」が故に、どういう構成が良いのかというのが悩ましい点でもあります。 このエントリでは、私が実際に構築したプロダクトをベースに構成例をご紹介します。Laravel アプリケーションを構築する上での参考になれば嬉しいです。 1. ディレクトリ構成 まずは、大枠のディレクトリ構成から。アプリケーションや開発環境用の Vagrantfile やプロビジョンファイルなど

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

  • Ansible で、複数サーバの RPM を一括で更新する

    Bash 脆弱性が出ましたね。対策がまだの方はお早めに。 修正 RPM が提供されているとはいえ、複数サーバにログインして、yum update していくのは、骨が折れる作業です。元から構成管理ツールを導入していて、一括更新出来る場合は良いのですが、なかなか導入できていないところも多いでしょう。 このエントリでは、Ansible を使って、複数サーバに対して、一括で RPM 更新を行う方法を見ていきます。 Ansible インストール Ansible の操作を行う PC or サーバにインストールします。これは ansible コマンドを実行する環境にのみインストールします。例えば、サーバ管理者の PC などです。チームで行う場合は、操作用のサーバにインストールして、SSH で操作サーバにログインして、実行すると良いでしょう。 OSX なら、Homebrew で入れるのが簡単です。 $ b

  • PHP で配列を走査して処理するのは、for / foreach だけじゃない

    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 定義されている情報(クラス、関数、変数等)を取得する関数まとめ

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

  • 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 で自分の PC に「作って、壊して、元に戻せる」サーバを作る

    Vagrant 便利ですね。Web システム構築ではサーバ構築、設定を何度となく繰り返すので、こういった「作って、壊して、元に戻せる」環境が自分の PC にあるというのはとても重宝します。 ここでは Vagrant1.0 を使って、Mac OS X 上に CentOS サーバを構築します。また触ってみて便利だった機能もいくつかご紹介します。 1. VirtualBox のインストール 2. Vagrant1.0 のインストール 3. box ファイルのインストール 4. Vagrantfile の作成 5. 仮想サーバを起動 6. 仮想サーバを停止 7. 仮想サーバを削除 8. 仮想サーバでhttpdサーバを構築 9. sahara プラグインで、作って、壊して、元に戻せる環境を構築 10. 複数の仮想サーバを起動 11. 仮想サーバのエクスポート Q. OS X, ruby, gem

  • PHPerの悩みを解決する arry を作ってみた(PHP Advent Calendar jp 2011 Day 2)

    Home > PHP > PHPerの悩みを解決する arry を作ってみた(PHP Advent Calendar jp 2011 Day 2) PHP Advent Calendar jp 2011 2日目です。 はい、PHPer王子です。 前日の @cakephper さんになんだか妙な名前を付けられました が、今年も PHP Advent Calendar を実施することになりました。管理人がなぜか 2 日目という変わったスタートとなりましたが、なんとか12/25の最後日まで駆け抜けたいと思います。参加されたみなさんよろしくお願いします! ちなみにまだ数日空きがあるので、いっちょ書いてみよーという方の参加お待ちしてます:D PHPerにおける連想配列の悩み 王子らしくPHPerの悩みを解決したい!ということで、連想配列にまつわるお悩みを。 普段PHPを書いていて何とも悩ましいのが、

    PHPerの悩みを解決する arry を作ってみた(PHP Advent Calendar jp 2011 Day 2)
  • CakePHP Modelとの付き合い方(CakePHP Advent Calendar 2010 3日目)

    CakePHPのModelに悩む人が多いようなので、自分なりの付き合い方(考え方)をご紹介します。 CakePHP Advent Calendar 2010の3日目です。 前日の k1LoW さんのエントリ、参考になりますね。GETのフォームをdata[]でやるとURLがすんごいことになるので、ウチでは別途対応できるライブラリを作ったりしてます。 さて、3日目の今日は書きたいネタは幾つかあったのですが、「君の当たり前に僕らは感嘆させられるんだ」の精神に従って、自分なりのModelの使い方、考え方を書いてみます。 1. 適正なインターフェイスを用意して処理をカプセル化 まず基的な考え方。 Model(に限らずですが)では、処理単位でインターフェイス(メソッド)を用意して、実装はカプセル化しておきます。 こうすることによって、Modelを利用する側(Controllerや他のModel等)は

  • CakePHP 1.2で携帯用ビューを表示する | Shin x blog

    CakePHP1.2ではCakePHP 携帯用ビューを表示するで利用していたwebservicesの機能が無くなります。 1.2-betaでRouting.webservicesをonにすると以下のようなメッセージが表示されます。 Deprecated: webservices routes are deprecated and will not be supported in future versions. Use Router::parseExtensions() instead. The prefix automagic in CakePHP routingで紹介されているように、1.2からはwebservicesに替わりprefixをURLルーティングで使用するようです。 そこで実際にどのように使用するかを試してみました。 1. URLルーティングでprefixを設定する Rou

  • PHPでメールの重要度を設定する

    PHPでテストしてみました。mb_send_mail()でメールヘッダを設定しているだけです。 <?php $to = 'hoge@example.com'; $subject = 'subject'; $body = 'body'; // ヘッダで重要度高を設定する $header = 'Priority: urgent'; //$header = 'X-Priority: 1'; //$header = 'X-MsMail-Priority: High'; mb_language('ja'); mb_send_mail($to, $subject, $body, $header); ?> このコードを実行すると、手元のBecky!では受信したメールに重要度高が設定されているのが確認できました。 どのヘッダを使用するかですが、Becky!では3つの内、どのヘッダを使用しても重要度が設定さ

  • CakePHP 公開する時はデバッグ情報を出さない

    CakePHPで作ったシステムを公開する時は、フレームワークが出力するデバッグ情報に気をつけましょう。 1. SQLログ DEBUG定数の値を2以上に設定すると実行されたSQL文がログとして画面に表示されます。通常稼働する際はDEBUGを0にしてこの出力は抑制するのですが、たまに稼働でもSQL文がログが出力されているサイトがあります。 ちなみにSQLログに含まれるキーワードをGoogleで検索すると出力したままのサイトが見つかったりします。 “queries took” “Took (ms)” – Google 検索 対策 [app/config/core.php]にあるDEBUGを0にしておきます。公開サイトでSQL文を確認したい場合はCakePHP SQLをログに記録する方法などを使ってログファイルに出力するのが良いでしょう。 [app/config/core.php] // de

  • モバイル向けGoogle AdSenseをPHPで使う

    Google AdSenseにモバイル版が登場しました。 通常のAdSenseではJavaScriptを使って広告を表示するのですが、携帯ではJavaScriptが使えないので、PHPPerlなどサーバ側で実行する言語で記述します。AdSenceサイトではPHP/Perl/JSP/ASPのコードが用意されており、モバイル向けAdSense設定を行うとそれぞれのコードが表示されます。 PHP用コードを確認したところ、コードの流れは単純で、AdSense IDや広告フォーマット、HTTPリクエスト(HTTP_USER_AGENT等)などを専用変数に設定して、最後にリモートにあるPHPコードをrequire()しているだけです。 コードを見て気になる点があったのでメモしておきます。 $_SERVERにキーが無いことを想定していない $_SERVER[‘HTTPS’]や$_SERVER[‘HTT

  • CakePHP Screencastまとめ | Shin x blog

    CakePHPを解説するScreencastをまとめてみました。 フレームワークを理解するのにソースやドキュメントを見て触るのが一番良いのは間違いないですが、動画や音声での解説はイメージを頭に作るのにとても役立ちます。 私も今はソースやファイル構成が(ざっくりですが)頭に入っていますが、Screencastを見るとより理解が深まるように感じます。 1. Admin Routing Admin Routingの使用法です。(/adminでadminアクションを呼び出す方法) bakeでMVCを生成して、adminアクションに対応させていきます。 2. Episode 1: Using Debug Messages URLに対応するMVCが無い場合に表示されるエラーメッセージに従ってアプリケーションを構築していきます。 序盤はMVCをbake&エディッタで書いていきますが、途中からscaffo

  • 1