タグ

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

  • 「レイヤードアーキテクチャを意識したPHPアプリケーションの構築」を発表しました

    2015/06/27 に開催された PHPカンファレンス福岡2015 にて、「レイヤードアーキテクチャを意識したPHPアプリケーションの構築」という発表をしてきました。 MVC フレームワーク(CakePHP / Laravel)で構築したアプリケーションをレイヤードを意識して改善したという内容です。参加いただいた皆さんの顔ぶれを見ると歴戦の勇者みたいな方ばかりでしたが、和やかな雰囲気でセッションを進めることができました。ご参加ありがとうございました。 発表資料 発表資料は以下です。 MVC にサービスレイヤを追加して、それぞれの役割を意識して作る。レイヤ間の依存を明確にする。サービス(ドメイン)を中心に考える。よく言われていることなのですが、実際に実践する中で、ハマりがちなことや実際に実践してきた中で感じたことを紹介しました。もちろん、これで ok ということはないので、今後取り組んでい

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

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

    ryuzee
    ryuzee 2014/10/01
    ありがとうございます!
  • PHP コードの整形はプログラマがやるべきことじゃない

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

    ryuzee
    ryuzee 2014/09/23
  • 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コマンドで実行しま

    ryuzee
    ryuzee 2012/05/22
    こういう整形処理にはIDE使ったりしてたけど、いらなくなるならいいなぁ
  • Google+を2週間使って分かったこと、感じたこと15

    Googleが開始したSNSGoogle+にすっかりはまっています。ここ2週間ほど使ってみて分かったTipsを書いてみます。 Google+(グーグルプラス)は、Googleが運営してるソーシャルサービスです。 Googleのソーシャルサービスといえば、これまで幾つかありましたが、どれもいまひとつ盛り上がり切らなかった感があり、2011/06/29 にクローズドテストが始まった直後は静観していました。 しかし、せっかく招待状を頂いたので、登録して使っていくうちにどっぷりハマっていくことになりました。 ここ 2 週間使ってみた中で、見えてきた点を書いてみます。 このエントリは、2011/07/14 時点の内容です。Google+は日々改良が重ねられていますので、もしかするとあなたが読んでいる今は内容が変わっているおそれがあります。ご注意を。 1. どうやってはじめれば良い? 現在はクローズ

    ryuzee
    ryuzee 2011/07/16
    分かりやすい解説
  • AWSで気になること4つを聞いてきた - 第1回 JAWS Osaka勉強会

    第1回 JAWS(Japan AWS User Group) Osaka勉強会に行ってきました。 大阪では貴重なクラウド系の勉強会、しかもAWSの方が来られる、さらにちょうどAWSを使える案件が出てきたタイミング(というか提案したのですが:D)ということで、参加してきました。 おそらく他の参加される方は「はじめまして」の人ばかりですし、せっかくの機会なので LT もやってきました。 ちなみに人見知りしたり、自己紹介が苦手だったりする人は発表してしまうのが良いですよ。発表の上手下手は関係無く、発表した人は印象に残りやすいです。数分でも自分の話を参加者全員が聞いて貰えるってなかなか無いですからね。 @see 勉強会を楽しむなら発表しよう! AWSで聞きたいあれこれ 「AWSで聞きたいあれこれ」というタイトルでLTしてきました。 せっかくAWSエバンジェリスト、さらに識者の方達が集まる場なわけで

    ryuzee
    ryuzee 2011/02/28
    他人がどうやって使っているかは意外と知らないのでありがたい
  • 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等)は

    ryuzee
    ryuzee 2010/12/05
    Viewを作るのは個人的には反対かも。まぁ規模とか性能要求にもよるけど。
  • PHPからPostgreSQLに大量のデータを登録する

    PostgreSQLに大量のデータを登録する際はINSERTを使って一件づつ処理するより、COPYを使って一気に登録した方が実行速度が(かなり)速いです。 そこでPHPでもCOPY文を使ってみましょう。 pg_copy_fromを使う 登録するデータが配列に入っているならpg_copy_fromだけで一気に処理できます。 配列の1要素が1レコードに対応しています。1要素内では各カラムをデリミタ(デフォルトは”\t”)で連結します。 <?php $values = array(); $values&#91;&#93; = "1\tname1"; $values&#91;&#93; = "2\tname2"; $values&#91;&#93; = "3\tname3"; $db = pg_connect("dbname=hogedb"); pg_copy_from($db, 'table',

  • Pokenを試すなら今

    週末に参加したJUIとOSCにてPokenを初体験してきました。 この手のものは、認知され出した時に触っとくのが楽しいのでPoken推しエントリです:-D ここでは自分が感じたPokenの印象のみなので、Poken自体の解説はこのあたりをどうぞ。 IT勉強会でのPoken状況 サンプルは少ないのですが、聞いた話も含めてざっくりと。 ・[2009/07 JUI] 認知:6~7割くらい。所持:2~3割くらい。 持っていなくても知っている人は多かったですし、知らない人も興味津々でした。 ただ持っている人もみなカバンの中などに入れていて、わざわざ見えるようにぶら下げていたのは自分くらいでした>< はじめは隅でチマチマ声を掛けてPokenしていたのですが、主催者の方から「Pokenしましょー」と呼びかけがあったので、所持者が一斉に集まってPokenできました。 皆で集まってやるとワイワイ楽しいのです

    ryuzee
    ryuzee 2009/07/15
  • 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を出すように設定しています。これにより想定外

  • 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さんありがとうござ

  • CakePHP - validate

    CakePHPでのvalidateネタ。 validateは入力チェック正規表現をmodelの$validateに配列で設定しておくだけなんだけど、メールアドレスの重複チェックなんかはそのままではどうにもできない。 modelの$validateに正規表現ではなく、(入力チェック)メソッド名を入れとけばそれを呼んでくれたりするのかな、と思ったがそれはナシ。 マニュアルではcontrollerで重複チェックを行う方法が載っているだが、正規表現でのチェックはmodelにあるので一緒にmodel内に書きたいところ。 で、考えたのが以下の3つの方法。 model#beforeValidate()に書く 正規表現での入力チェックより先に呼ばれてしまう。 一意チェックなんかではDBアクセスが発生するから正規表現でのチェックを通過したものだけ処理を行う方が良い。 model#validates()に書く

  • 第3回CakePHP勉強会も盛り上がりました。

    第3回CakePHP勉強会に参加してきました。 回を増すごとに熱気むんむんなのですが、今回はあのトライコーンさん(すずきさんいつもありがとうございます!)の会場がびっしり埋まる勢いでした。 特に今回は関東圏外の方が多いのにも驚きました。北海道の方や福岡の方が来てらしたので、大阪からの自分では遠方者扱いとはなりませんでした;-)。ありがたいことです。 ~フェイス女学園~ CakePHP を使った効率的なPC・モバイルサイト構築について スパイスボックスラボラトリ 神部さん 受付でバタバタしていてあまり落ち着いて聞けませんでした>< 資料公開に期待! サービスが伝播していく流れがリアル => 何だかんだいってTVは強力なのかな CakePHPでの失敗談 ブルーオーシャン 岡田さん 「CakePHPポケットリファレンス」出版おめでとうございます! 次期C++を使って、C++版CakePHP? =

  • CakePHPでDBアクセスなしのModelを作る

    CakePHPのmodelはDBのテーブルと1対1になる事が想定されています。ただシステムを構築する際はこのような単純なmodelだけでは使い勝手が悪い場合があります。そこでDBアクセス無しのmodelの作成方法を模索してみました。 フレームワークのソースを見たところmodelの$useTableにfalseをいれておけば良いようです。 [app/models/no_db.php] <?php class NoDb extends AppModel { $useTable = false; } ?> では、modelなしのcontrollerはというと・・・フレームワークを見る限りでは方法は無さそうですね。ただcontrollerの$nameでmodel名を指定する事ができるので、これにダミーのmodelを指定すれば、modelを新たに作らずにcontroller・ビューファイルを追加する

  • 1