タグ

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

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

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

  • Mac で Vagrant を GUI で操作できる「VagrantX」をリリースしました

    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 をただ使うだけであれば、

  • CakePHP routes.phpの確認はユニットテストで

    routes.phpを仕様に合わせて設定しておきます。 <?php // Router::connect('/:user_id/edit', array('controller' => 'user', 'action' => 'edit')); Router::connect('/', array('controller' => 'top', 'action' => 'index')); Router::connect('/:user_id/*', array('controller' => 'user', 'action' => 'index')); // Nothing Router::connect('*', array('controller' => 'nothing')); ?> 最後はシステムが取るべきURL以外ならNot Foundを出すように設定しています。これにより想定外

  • 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

  • TwitterにいるPHPのすごい人リスト

    PHP Community on Twitter ZEND DEVELOPER ZONEでPHPコミュニティのTwitterアカウントが紹介されています。 リストに並んでいるのはPHP家の人や海外の人ばかりだったので、日のすごいPHPerのTwitterアカウントを並べてみました。(()内はざっくりです;-)) TwitterをはじめたPHPerは要チェック! @LIND(baseball_flash、懇親会の人) @akiyan(はてぶTV、CakePHPの人) @bto(phshの人) @cocoitiban(Ethnaの人) @elf(よくきたなの人) @halt(Ethna、vimの人) @hiro_y(moonyの人) @hnw(round()の人) @ichii386(Ethnaの人) @iogi(PHP Extension勉強会の人) @iteman(Piece Fram

  • PHP 配列を回すならforかforeachか

    今日、社内で「PHPの配列をループで回すのにforを使うか、foreachを使うか」という話が面白かったので、メモ。 ここでいう配列はキーが数字で、0からの連番であることを想定してます。(キーが数字以外や連番で無い場合は、foreachを使います。) 例えば↓のようにDBテーブルからレコードを読み込んだ内容が入ってる場合、$listをループで回すならforとforeachのどちらを使うべきかという話です。 <?php $list = array(); $list&#91;&#93; = array('id' => 1, 'name' => 'hoge'); $list[] = array('id' => 2, 'name' => 'foo'); $list[] = array('id' => 3, 'name' => 'bar'); ?> for文派 <?php for ($i = 0 ;

  • Facebookをスーパーマリオに例えると

    登録(復帰)直後は、通常マリオ。ジャンプ力も無いから投稿する内容も無難なものだし、クリボーにちょっと当たるとダメ。 戦々恐々としながら投稿していくと、キノコ(いいね!)やフラワー(コメント)がもらえる。 => スーパーマリオやファイヤーマリオになると(気持ちの中で)色んなことができるようになる。写真も投げてみたり、他の人にも絡んでいったり。 => 手にするアイテムによっては、グループやファンページを作ったりも。 でも、やっぱりクリボーに当たるとびっくりするくらいすぐに前の状態に逆戻り。イケイケで投稿していたのが、いきなり遠慮気味になったり。 何かの拍子にスターを手に入れれば、無敵マリオに!なんでも来い状態で、バンバン投稿するし、ガンガン絡んでいく。そんな空気は伝播するのか、いいね!やコメントが付きまくり。まさに光り輝いてる状態。 でも無敵マリオは長くは続かない。無敵状態を維持するにはスター

  • CakePHP 携帯用ビューを表示する

    サイトにPC用と携帯用がある場合、PC用とは別に携帯用の表示を行う方法です。この方法なら同じコントローラ・アクションで、レイアウトとビューファイルを変更することができます。なお携帯版のURLは[/m/]で始まるようにします。 1.URLルーティングを設定する。 [app/config/routes.php]で[/m/]からURLが始まる場合にwebservicesとして扱うように設定します。 [app/config/routes.php] <?php (snip) $Route->connect('/m/:controller/:action/*', array('webservices' => 'Mobile')); ?> 2.WEBSERVICESを有効にする。 webservicesがフレームワーク内でサポートされるように設定を変更します。 [app/config/core.php:

  • PHP基礎文法最速マスター

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

    chiku-san
    chiku-san 2010/02/06
    あとでrubyも読む
  • シンプルなTwitter検索「findTwitter」を作りました&ソース公開

    AutoPagerize対応したシンプルなTwitter検索「findTwitter」を作りました。 Twitterのつぶやきを検索 機能はシンプルです。テキストボックスに検索したいキーワードを入力して、「検索する」ボタンをクリックするとキーワードに合致したつぶやきを表示します。 「shin1x1」で検索 検索パターンとしては以下のような組み合わせが可能です。 単語で検索。(ex. [CakePHP]) スペースで単語を連結してAND検索。(ex. [PHP カンファレンス]) 「OR」で単語を連結してOR検索。(ex. [shin1x1 OR msng]) 仕組み TwitterAPIを叩いているだけ 仕組みはごくごく単純でTwitterの検索APIを叩いてるだけです。 検索結果はAPIの挙動に依存しているので、検索漏れや古いつぶやきが検索対象にならないなど現象があります。 CakePH

  • CakePHP 管理者サイトでBasic認証を簡単に行うコンポーネント

    CakePHPの管理者向けサイトにBasic認証を簡単に追加するコンポーネントです。 1.2系で動作しますが、ちょこちょこっといじれば1.1でも動くかと。 1. Routing.adminを有効にする そもそもこれをやらないと意味がありません。[app/config/core.php]でRouting.adminを有効にします。 これにより[http://example.com/admin/~]のURLで管理者用アクションにアクセスできます。 Configure::write('Routing.admin', 'admin'); 2. 認証コンポーネントを設置 認証コンポーネントを[app/controllers/components/admin_auth.php]に設置します。 [2008/05/29] 継承元をComponentからObjectへ変更しました。(janさんありがとうござ

  • 1