タグ

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

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

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

    czblue
    czblue 2014/12/04
  • CentOS 6.5 に Docker をインストールしてみた

    Shin x blog Advent Calendar 2013 の 7 日目です。 いよいよ CentOS 6.5 から Docker がサポートされたということで、実際にインストールしてみました。 Vagrant で CentOS 6.5 環境 Vagrant で CentOS 6.5 環境を作ります。( CentOS 6.5 環境がある場合は不要です。) CentOS 6.5 の Box ファイルには、Opscode が提供している Bento プロジェクトのものを利用しました。 $ vagrant init opscode-centos65 http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-6.5_chef-provisionerless.box $ vagrant up $ vag

  • 6分でわかる最近のPHP 2013年冬

    Shin x blog Advent Calendar 2013 の4日目です。 6分で分かるべく最近のPHP事情をざざざっとご紹介します。 過去のエントリはこちら。 6分でわかる最近のPHP ― 2012夏 5分でわかる最近のPHP – 2011夏 1. PHP 5.5 リリース PHP5系の新しいバージョンとして、PHP 5.5 が 2013年6 月にリリースされました。 新しい機能としては、ジェネレータや finally 句の、パスワードハッシュ関数、OPCache などが追加されています。 2013/12/04 現在では、5.5.6 が最新版となっています。 PHP5.5 のコードキャッシュは APC から Zend OPcache へ PHP: PHP 5.4.x から PHP 5.5.x への移行 – Manual PHP 5.5の新機能:さっくり理解するPHP 5.5の言語仕

    czblue
    czblue 2013/12/05
  • PHPの基本、phpinfo()の見方

    PHPerにはお馴染みの関数、phpinfo()の見方です。 PHPには多数の設定項目があり、それらを一覧する機能としてphpinfo()があります。 設定項目の他にインストールされている拡張機能や実行環境の情報が確認できるので、おそらく多くのPHPerが活用していると思います。 これからPHPを学ぶ人ならおさえておきたいphpinfo()の見方をまとめてみました。 1. phpinfo()の実行 まずは基礎の基礎、phpinfo()の実行です。 phpinfo()自体はただの関数ですので、PHPソースに記載するだけで良いです。 以下のソースをinfo.phpというファイルで保存します。 <?php phpinfo(); ブラウザでこのファイルにアクセスすればphpinfoが表示されます。 1-1. ファイル名は? Webでのサンプルなどを見るとphpinfo.phpというファイル名にして

    czblue
    czblue 2013/07/31
  • PHPer が「JUnit実践入門」を読んだ

    「JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)」を献して頂いたので読んでみました。 普段は PHPUnit でテストを書いているので、その家とも言える JUnitは興味津津でした。 実は、今でこそ PHP 三昧の日々ですが、数年前(JDK1.3 とか 1.4 の時代ですが)は Java で開発していたこともあったので、いまどきの Java、JUnit がどうなっているか知りたくもあり、興味深く読み進めることができました。 読んでみて感じた点を挙げてみます。 1. 圧倒的なボリューム まず目次をざっと見た時に感じたのがカバーしている範囲の広さです。正直よく一冊に収まってるなあと:D JUnit の解説からはじまり、JUnit を使ったテストの書き方、ソフトウェアテスト・テスト技法、ユニットテストのパターン、そして JUnit のより

  • いまどきの技術本執筆環境 - 「CakePHP2実践入門」

    原稿執筆 原稿は Vim で書いて、Marked のプレビューを確認するという形で進めました。 Vim 原稿の形式は、Markdown+独自マークアップのプレーンテキストだったので、執筆陣は各自好きなツールを使うことができました。 Vim は普段から使っていて慣れていますし、技術ということでソースコードを読んだり書いたりする場面が多いので同じエディタ上でそれができるのは楽でしたね。 Markdown ということで当初は専用のエディタなども試したのですが、やはり「書く」という行為に関しては手に馴染んでいるものが一番です。 Marked Marked は Markdown 形式で書かれたファイルをプレビューするツールです。Marked でファイルを開いておくと元ファイルが変更されるとプレビュー側も連動して更新されます。 あくまでプレビューに特化したツールなので任意のエディタと組み合わせて使用

    czblue
    czblue 2012/10/01
  • 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に入れる必要はありません。 下記のようなコマンドを打つだけで、ビルトインサーバが起動します。新しいフレームワークやライブラリ、アプリケーションを試してみたい時に手

    czblue
    czblue 2012/08/03
  • CakePHP における Mass Assignment 脆弱性対策

    Rails 界隈で話題の Mass Assignment 脆弱性を CakePHP で防ぐ方法です。 Github に Mass Assignment 脆弱性が発見されて、Rails 界隈で話題になっています。この問題自体は目新しいものではなく、Rails 自体の問題というより、Rails アプリケーションの作り方の問題ということで、以前から作る側が注意を払う必要がありました。 この Mass Assignment 脆弱性は、Rails を手に発展してきた CakePHP アプリケーションでも同様の問題が発生する可能性があります。知っている人には常識なのですが、まだ知らない人もいるかと思うので、CakePHPにおける対策方法を書いてみます。下記コードはCakePHP2系を想定していますが、考え方はCakePHP1系でも同じです。 Mass Assignment 脆弱性 CakePHP

  • 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)
    czblue
    czblue 2011/12/02
  • Webシステム開発に便利な7つのツール

    Webシステム開発で使っている便利なツールをあげてみました。 あらためて社内の開発環境を見直す機会があったので、使っているツールを並べてみました。こうして見ると色々なツールを使って開発をしていますね。わりと定番系なものが多いですが、良かったら参考にどうぞ。 1. Apache / PostgreSQL / PHP Mac OS X に MacPorts でインストールしたApache / PostgreSQL / PHP 環境を使って開発をしています。 PHPは5.3、PostgreSQLは8.4 or 9.0です。 ただ旧バージョンのPHPを使ったり、Linux でなければ動かないモジュールを使うこともあるので、その際は社内のCentOSサーバにSSHで入って開発したりもします。 Vimを使ってるので、SSHで入ればどのサーバでも開発できるのは利点ですね。 Mac を使い出して、しばらく

    Webシステム開発に便利な7つのツール
  • PHP シリアライズデータ型(PHP Advent Calendar jp 2010 Day 2)

    今年(2010年)は、日でも技術系コミュニティのAdvent Calendarが流行していますね。 PHP関連だとCakePHP(明日書きます!)やSymfony、OpenPNEなどはあるのですが、PHP単体が無かったので作ってみました。 PHP Advent Calendar jp 2010 Advent Calendarについては、下記リンクが詳しいです。これを書いている段階では、まだ参加枠があるので、どんどん参加して下さい。みんなのちょっとしたPHPネタを書いていきましょう! 技術系Advent Calendarについて 他の Advent Calendar というわけで、まず初回(12/2に始めたので、Day1は空席で)のネタは、最近自分の中で流行中のPHPのシリアライズデータ(serialize()/unserialize())について。 シリアライズデータのデータ型 Cake

    czblue
    czblue 2010/12/02
  • PHP unserialize()が__destruct()を実行する?

    CakePHPセキュリティホール(まだの方はご対応を!)から、unserialize()が話題になっています。 このセキュリティホールは、外部から送信された値をチェックせずにunserialize()したことが引き金になっており、安全でない値をunserialize()することの危険性が指摘されています。 下記エントリでは、コードを交えてunserialize()から__destruct()が実行される過程が解説されています。 PHP5 __destruct() and unserialize() function – TokuLog 改メ tokuhirom’s blog 念のための補足なのですが、unserialize()から__destruct()が呼ばれるわけではありません。 下記コードは、PHP5.3.3で実行しています。 unserialize()から実行される関数 unse

    czblue
    czblue 2010/11/19
  • Lithiumのフィルタシステム

    次世代CakePHPとも言うべきフレームワークLithiumのフィルタシステムを見てみました。 Lithiumは対象がPHP5.3以上ということで、5.3ならではの機能を活用したアーキテクチャになっています。中でも特徴的なのがフィルタシステムです。 全体のアーキテクチャとしては、CakePHPの流れを汲んで標準的なMVCフレームワークになっています。ただそれを実現する手段としてフィルタシステムを多用しています。これまでのフレームワークとは異なる点があり、いざフレームワークの動きを掴もうとすると戸惑います。 そこでLithiumのフィルタシステムをざっくりと見てみましょう。 サンプルソース サンプルとして、SampleControllerとそのビューテンプレートを用意します。 フィルタの動きを見るだけなので、indexアクションでは、ログに__METHOD__を記録するだけです。 [app/

  • スクリプト言語間における「lexical closure」の違い - PHPの場合

    via. スクリプト言語間における「lexical closure」の違い、それともプログラムの違い? – karasuyamatenguの日記 PHPも5.3からクロージャがあります。クロージャの指定の仕方によって挙動が異なりますが、PHPで書くと以下のようになります。 ループでiを0から4まで回す ループブロック内で: iを埋め込んだlexical variable、’localvar’を定義。 localvarを参照したclosureをリストに追加。 5つのclosureの値をプリント スクリプト言語間における「lexical closure」の違い、それともプログラムの違い? – karasuyamatenguの日記 各クロージャの$localvarが独立しているパターン。 foo0 foo1 foo2 foo3 foo4 各クロージャで$localvarを共有しているパターン。(

    czblue
    czblue 2010/10/09
  • 約半月で 4,000,000PV を華麗にさばく Google App Engine

    「なんでも判定ツクール」へ多数のアクセスありがとうございますm(_ _)m 1月末にリリースした当初は僅かのアクセスだったのですが、Twitterで火が付いてからは一気にアクセスが集まり、気が付けば2月1日〜2月16日で4,000,000PVを超えました。 自分では絶対に考えつかないであろうユニークな判定がたくさんできて、私自身もとても楽しんでいます:-D(面白い発想をする人は世の中にたくさんいるものです) このサイトはGoogle App Engine(GAE)+Pythonで構築しているのですが、このアクセス数ならではのGAE上で体験できたことをざざっと書いていきます。 無料?課金? まずはじめに大事なこと。 「なんでも判定ツクール」ではGAEを課金状態にしています。無料のQuotaではとてもではないですが、このアクセスは捌けません:D GAE公式サイトには 月間約 500 万ページ

    czblue
    czblue 2010/02/17
  • PHP基礎文法最速マスター

    PerlRubyの文法一覧がとても良くまとまっていたので、便乗してPHPでもやってみました。 Perl基礎文法最速マスター – Perl入門〜サンプルコードによるPerl入門〜 Route 477 – Ruby基礎文法最速マスター 他の言語をある程度知っている人はこれを読めばPHPの文法を何となく理解できると思います。 間違い、不足等々あれば教えて下さいm(_ _)m バージョン PHP5.3系がリリースされていますが、ここではPHP5.2系を対象としています。 1.基礎 コードブロック PHPコードは「<?php」という開始タグから始まります。終了タグは「?>」です。HTMLPHPコードを埋める際は終了タグを使いますが、ライブラリのようにPHPコードのみを記述する際は終了タグを省くことが慣例となっています。 終了タグを省く理由について id:Kiske さんに解説頂いています。ありが

    czblue
    czblue 2010/01/28
  • Twitterクラッキングによるアカウント乗っ取りを図にした

    今日の15:00頃にtwitter.comがクラッキングされて、全く異なるトップページが表示されていたようです。 Twitter Blog: DNS Disruption Twitter がクラッキングを受けてダウンしている模様 – Yaks Twitterがクラックされている件 – 西尾泰和のはてなダイアリー 私が見た時は単に接続ができない状態だったのですが、DNSを不正に書き換えられてtwitter.comが別サーバに向くようになっていました。 すでに各サイトで技術的な解説はされているので、タイムラインで懸念されているアカウント乗っ取りについて図を書いてみました。 通常時 OAuthを使っていない多くのTwitterクライアントは、Basic認証を使ってアカウントの認証を行っています。つまりTLを取得するなり、postするなり、twitter.comへのリクエスト毎にアカウントIDとパ

  • PHPカンファレンススピーカーのTwitterアカウント集

    PHPカンファレンスお疲れ様でした! カンファレンスでは数多くの素晴らしい発表があったわけですが、そんなスピーカーの方々のTwitterアカウントを集めてみました。スピーカーの方々の今後にも要チェックということで:-D 勝手に載せていますので、載せるな、間違っている等々あれば連絡下さいm(_ _)m # 廣川さん[2010/09/13] コメントで教えて頂きました:DとBrianさんが分かりませんでした。分かる方教えて下さい。。。 [2009/09/15] mocapapa氏のidが誤っていたので、修正しました。ご指摘ありがとうございました。 ビジネスデイ @suzuki [B-1]イントロダクション 日PHPユーザ会 トライコーン株式会社 鈴木則夫氏 @nagasheep NetCommonsでオープンソース・ビジネスモデルの実現 NPO法人コモンズネット理事 OSSコンソーシアム理事

  • CakePHP 目で見るフックメソッド

    第2回CakePHP関西勉強会でやったデモをこちらでも。 CakePHPには色々なフックメソッドがあるのですが、それらがどのタイミングで呼ばれるかを一覧できるようにデモを行いました。懇親会やアンケートでも良かったよ、と意見を頂いたので、簡単に画面のキャプチャを並べます。 1. Controllerのフックメソッド Controllerのフックメソッドを並べています。index()はアクションメソッドなので、ここで表示されているフックメソッドは3つです。 ソース <?php class DemoController extends AppController { public $uses = array(); public function index() { } } ?> フックメソッドの並び 2. Componentのフックメソッド Controllerの$componentsを設定して

  • 第2回CakePHP関西勉強会も盛り上がりました&発表資料

    第2回CakePHP関西勉強会が終了しました。 photo by zatsu 前回からは半年程経っているのですが、関西もまだまだアツいです。主催ということで、司会もやりつつ発表もしつつとなったのですが、開始からopening、自己紹介、自分の発表と初めの1時間ほどは喋りっぱなしになって、ちょいバテました:-D 他の勉強会でも主催の方はこういう状況になりがちなので、次回以降は順番等を練りたいですね。 今回の発表ではフックメソッドについて話しました。内容はフックメソッドの紹介と呼び出し順を見える化したデモなのですが、特に最後に触れた認証系のフックメソッドの呼び出し順を気にかけて貰えれば嬉しいです。さらに良い使い方があれば是非教えて下さい。 発表資料をアップしておきます。 以下、いつものようにつらつらとメモ書きです。 1. フックメソッドを極める shin1x1 まあ早い話がslywalkerさ

    第2回CakePHP関西勉強会も盛り上がりました&発表資料