タグ

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

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

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

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

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

    raimon49
    raimon49 2014/10/26
    分かり易くまとまってる。
  • Heroku で Composer を使う時に気を付けたいこと

    HerokuPHP をサポートしたので、テストがてら Laravel アプリケーションをデプロイしてみました。 デプロイしたのは、Doctrine を利用するアプリケーションだったのですが、ローカルでは composer でインストールできるのですが、Heroku にデプロイするとインストールされないという現象が起こりました。 Laravel での Doctrine 使用 今回のアプリケーションでは、DBのテーブルスキーマ情報を読み込んで、動的に画面を作るという処理があり、そこで Doctrine の SchemaManager を使っていました。 Laravel で、Doctrine の SchemaManager のインスタンスを取得するのは簡単で、下記のメソッドを実行するだけです。 $manager = DB::connection()->getDoctrineSchemaMa

  • 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 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

  • composer install をどこで実行するか

    最近の PHPer が集まれば、一度は話題に上がるのが、この composer install をどこで実行するのか問題。 これまで聞いた話をまとめると、大きく分けて、以下の2パターンになります。どちらの方法を取っているか教えて下さい 😀 0. 前提 前提ですが、以下のような方法で、Composer 関連のファイルは管理しているとします。おそらく多くはこのような形になっていると思います。 PHP コードは、Git などの VCS で管理する。 composer.json, composer.lock は、VCS で管理する。 composer.phar, vendor/ は、VCS で管理しない。 また、今回対象としているのはアプリケーションで、Packagist に登録して、配布するようなフレームワークやライブラリは対象外です。 1. 番サーバで実行 PHPサーバ上で compo

    raimon49
    raimon49 2014/03/16
    vendor/を自分自身で入れるか否か。
  • ざっくり分かる Vagrant 1.4 / Docker Provisioner

    Shin x blog Advent Calendar 2013 の 10 日目です。 Vagrant 1.4 がリリースされました。Docker Provisioner を中心に新機能をざっくりと見てみました。 ダウンロードページの変更 さあ、1.4 をダウンロードしよう、と今までのダウンロードページに行くと 1.4 のリンクがありません>< 新しいダウンロードページからダウンロードしましょう。 Download Vagrant – Vagrant Docker Provisioner Docker 対応として Docker Provisioner が追加されました。 このプロビジョナを使うと Docker 自体のインストールが自動で行われ(!)、その後、docker pull や docker run を実行することができます。 下記の Vagrantfile では Docker Pr

  • 「Composer 再入門」を発表してきました( #KOF2013 )

    2013/11/8, 9に大阪南港で開催されたKOF(関西オープンフォーラム)2013にて「関西PHP勉強会」のセッションを行いました。 今回は、いまやPHPerの必須ともいうべきComposerをテーマにしました。その中で「Composer 再入門」を発表してきました。 Composer再入門 この発表では、Composer の基的な使い方を紹介しています。自分でライブラリを公開する際の内容は @slywalker さんが発表されています。 Composer を使うこと自体は簡単なので、基的なところさえ知っておけば、特に問題は無いと思います。 ただ、今回の発表や先日行った Vagrant ハンズオンの際に感じたのですが、ターミナル操作の経験が無い人には、取っ付きづらいツールかもしれません。Composer を使わなくても、ZIP ファイルを直接ダウンロードすれば、フレームワークやライ

    raimon49
    raimon49 2013/12/01
    composer.phar require = JSON生成 + install
  • PHP5.5 のコードキャッシュは APC から Zend OPcache へ

    PHP5.5 からコードキャッシュとして標準バンドルされた Zend OPcache を試してみました。 第6回関西PHP勉強会で Zend OPcache についてLTしたのでインストールやベンチマークなどはこちらで。 beta4時点では、Zend OPcache は拡張で提供され、opcache.so インストールされる。 Zend OPcache を使うには、php.ini で zend_extension=opcache.so の記述が必要。 やっぱりデフォルトでインストールされるのは楽。 PHP5.5リリースと共に使えるので安心。(PHP5.4 対応の APC はまだ beta) ユーザデータのキャッシュはできないので、別の方法が必要。 OCP – OPcache Control Panel Zend OPcache の利用状況(設定、キャッシュ量など)が確認できるスクリプトが

    raimon49
    raimon49 2013/05/06
    APC対応無いかも知れんのか。
  • PHP5.3 のサポート終了(EOL)は、PHP5.5をリリースして1年後

    最近、話題のPHP5.3のサポート終了(End Of Life=EOL)について。 当初は2013/03末でEOL を迎えるという話だったのですが、これを延長する案が php-internals で流れていました。 PHP: rfc:php53eol [PHP Wiki]で投票が行われるくらいまでは追いかけていたのですが、結局どうなったのかなと気になってたところで @kenji_s さんの tweet から辿って以下のリンクを見つけました。 php.internals: [RFC][result] Define PHP 5.3 end of life 投票の結果、以下のことが決まったようです。 PHP5.3のEOLはPHP5.5.0をリリースして1年後 EOLの正確な日付はPHP5.5.0リリース時にアナウンス 当初よりは少し余裕は出来ましたが、PHP5.5はすでにbeta2まで来ているの

  • 勉強会なんてやらなくても良い

    勉強会について考えているもやもやを。 私は、主にPHP界隈の勉強会やカンファレンスを開催したり、運営側として関わったりしているのですが、勉強会を開催することについて最近もやもやと考えています。 勉強会に色々な関わる人(開催、運営、発表、参加などなど)からの意見も聞いてみたく、2012年の終わりに一度吐き出しておこうと思います。勉強会についていろいろなコメントを頂けると嬉しいですm(_ _)m はじめに、ここでいう「勉強会」というのは、オープンソース界隈で良く開催されている有志がボランティアベースで運営されているものを指します。有料セミナーや別カテゴリのものは想定していません。 また、自分が開催する勉強会について書いていますので、他の方が開催されている勉強会について指摘する意図は一切ありません。 勉強会なんてやらなくても良い 業が忙しくなると、ついつい勉強会の開催が億劫になってきます。勉強

    勉強会なんてやらなくても良い
  • PHPソースをコーディング規約に合わせて修正してくれるPHP Coding Standard Fixer

    PHPソースをコーディング規約に合わせて修正してくれるツール「PHP Coding Standard Fixer」を試してみました。 PHPでコーディング規約チェックツールとしては PHP_CodeSniffer が有名です。PHP_CodeSniffer はソースをチェックして、問題点を指摘してくれるのですが、ソースの修正は自分で行う必要があります。 PHP Coding Standard Fixerは、コーディング規約チェックだけではなく、規約に従っていないソースを修正してくれるツールです。 PHP Coding Standard Fixerを使う インストール インストールは簡単で、githubで公開されている php-cs-fixer.phar ファイル をダウンロードしてくるだけです。 実行する ダウンロードしたphp-cs-fixer.pharファイルをphpコマンドで実行しま

    raimon49
    raimon49 2012/08/04
    VCSと一緒に使わないと怖いな、こういうの。
  • 6分でわかる最近のPHP ― 2012夏

    さて夏がやってきました。夏と言えばPHPということで、昨年に引き続き、最近のPHP事情をご紹介。 1. PHP5.4リリース PHP5.4が2012年3月にリリースされました。 Traits や Short array syntax(配列の短縮構文)、array dereferencing(foo()[0]) などのPHP言語拡張、PHPコマンドで起動するビルトインサーバ、そしてパフォーマンスの改善など大きな変更が加えられています。 言語自体の機能追加も注目ですが、ビルトインサーバは多くの人にとってメリットになるでしょう。これを使えばPHPアプリケーションの動作確認のためにApacheやnginxなどのhttpdサーバを自分のPCに入れる必要はありません。 下記のようなコマンドを打つだけで、ビルトインサーバが起動します。新しいフレームワークやライブラリ、アプリケーションを試してみたい時に手

    raimon49
    raimon49 2012/08/04
    PEARがほぼオワコン
  • PHPUnit テストケースで書き換えた値を復帰する

    PHPUnitのテストケースで書き換えた値の復帰について。 テストケースでテストを記述する際に、スーパーグローバルやクラス変数を書き換えることがあるのですが、これらの値を書き換えたまま、別のテストを実行すると書き換えられた状態でテストが実行されるので、それらの値に依存した処理があるとテストが通らないことがあります。 PHPUnitでは、そういったテストをまたがって影響を及ぼすであろう値の保存、復帰を自動で行なってくれる機能があります。 スーパーグローバル デフォルトでは、各テストメソッドを実行する前に、スーパーグローバル変数($_ENV, $_POST, $_GET, $_COOKIE, $_SERVER, $_FILES, $_REQUEST)の値をが保存されており、テストメソッド終了後にそれらの値がスーパーグローバル変数へ復帰されます。 これらの処理はsetUp()/tearDown(

    raimon49
    raimon49 2012/02/12
    –no-globals-backupオプション, @backupGlobals disabledアノテーション
  • 5分でわかる最近のPHP - 2011夏

    ここ最近のPHP界隈では、興味深いニュースが続いています。最近PHPを追っかけていない人へ少しづつご紹介。 近頃、PHP界隈でホットなニュースを5つ、つまみぐいして見てみましょう。 1. PHP5.4.0-alphaリリース! PHPの次期バージョン、5.4.0-alphaがリリースされました。 まだ alpha1 ですが、すでに Traits や Array dereferencing support など様々な機能追加が行われています。 特に Traits は面白い機能で、いずれはこれを利用したフレームワークの登場が考えられます。ぜひ使ってみたい機能ですね。 今後、正式リリースに向けてさらなる新機能が追加されていくようなので、目が離せません。 PHP 5.4 alpha1 released 現状のPHP環境はそのままで、PHP 5.4 を試す PHP5.4 alpha1リリース! PH

    raimon49
    raimon49 2011/07/30
    配列が[]構文で書けるのは嬉しい。
  • FizzBuzzではじめるテスト - 第1回関西PHP勉強会

    7/22に大阪市内で第1回関西PHP勉強会を開催しました。 4月にPHPカンファレンス関西を開催して以来、3ヶ月ぶりにPHPの勉強会を開催しました。 参加頂いたみなさんありがとうございました。また発表を快く引き受けていただいた皆さん、当にありがとうございました。 イベント名に「第1回」と付けたのは、今後も継続して開催していきたいという気持ちの表れです。PHPを軸に色々なテーマで開催していきたいと思うので今後もよろしくお願いします。 スイーツタイム 勉強会をやるときは、休憩時間にみんなでべるおやつを用意するのですが、今回は @msng さんに色とりどりのマカロンを用意してもらいました。見た目も鮮やかですし、適度な甘さで好評でしたね。(たしかに美味しかったです!) 昨今「スイーツタイム」が話題になっていますが、会場で飲が可能なら実施することに賛成です。 単純に勉強会で発表を聞くだけでも疲

    raimon49
    raimon49 2011/07/25
    入門向け マカロン美味しそう
  • 現状のPHP環境はそのままで、PHP 5.4 を試す

    現状のPHPはそのままで、新しい(別の)バージョンをPHP試す方法です。 PHP 5.4.0 alpha がリリースされました。Traits や Array dereferencing support など試してみたいですけど、さすがにメインのPHP環境を変えるのは早いですね。 そこで新しいPHPをビルドして、インストールはしない方法で試してみました。 PHP 5.4.0 alpha をビルド qa.php.netから、PHPのソースをダウンロードします。 $ wget http://downloads.php.net/stas/php-5.4.0alpha1.tar.bz2 展開して、configureして、makeします。とりあえずコンパイルオプションはナシで。 $ tar jxvf php-5.4.0alpha1.tar.bz2 $ cd php-5.4.0alpha1 $ ./co

    raimon49
    raimon49 2011/07/03
    インストールはせずに、makeして出来上がったcliバイナリでtraitを試すTips
  • コマンドラインからPHPマニュアルを見るpmanコマンド

    コマンドラインからPHPマニュアルを見ることができるpmanコマンドが登場しました。 manコマンドのようにコマンドラインからPHP関数やSPLのクラスについて調べることができます。 インストール pearコマンドでインストールします。 $ sudo pear install doc.php.net/pman 手元のMac OS X 環境では、/usr/bin/ に pman コマンドがインストールされました。 $ which pman /usr/bin/pman 使い方 pmanコマンドに調べたい関数名を指定します。例えば、array_map のマニュアルを見たいなら以下のように指定します。 $ pman array_map ARRAY_MAP(3) 1 ARRAY_MAP(3) array_map - Applies the callback to the elements of th

    コマンドラインからPHPマニュアルを見るpmanコマンド
    raimon49
    raimon49 2011/06/27
    ピーマン
  • 古くなったMacPortsを再インストール

    古くなったMacPortsを再インストールしました。 2年程前にインストールしたMacPorts。これまでもたまに selfupdate していた気はするのですが、久しぶりに selfupdate & upgrade outdated したらエラーで止まりまくりだったので、ここで心機一転再インストールしてみました。 1. MacPortsを削除 インストールしていた MacPorts を削除します。 /opt/local がそのまま残っていると、新しいMacPortsからソフトをインストールした際にエラーになる場合があるので、リネームしておきます。ここでは、/opt/local 以下の設定ファイルやデータを再利用したいのでリネームしていますが、不要であれば削除でも問題無いです。 $ sudo port deactivate active $ sudo port -f uninstall i

    raimon49
    raimon49 2011/06/26
    /opt/local
  • さあ、AWSをはじめよう! for PHPer

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