タグ

ブックマーク / blog.syuhari.jp (11)

  • PHP の flock 関数を勘違いしていました | Sun Limited Mt.

    PHP の flock 関数を数年ぶりに使用したのですが、すごい勘違いをしていました。DB を使用するようになってからいうものめっきりファイルロックなど使わなくなっていたので。。。(言い訳です^^) PHP: flock – Manual 返り値 成功した場合に TRUE を、失敗した場合に FALSE を返します。 と書かれていたので、てっきりロックできなかった場合に FALSE が返るのかと思っていました。 $fp = fopen(dirname(__FILE__)."/lock", "w+"); if (!flock($fp, LOCK_EX)) { triger_error('排他処理中のため実行できません', E_USER_ERROR); } として、sleep(60) などで実行を1分間止めて同じプログラムを実行し、ロックできなくてエラーになると想定してテストをしてみたところ、

  • CakePHP HTTP ソケット通信 | Sun Limited Mt.

    PHP で HTTP ソケット通信を行おうとすると PHP のソケット通信用関数を使うか、PEAR の HTTP::Request を使うかだと思います。PEAR の HTTP::Request を使うのが簡単なのですが CakePHP で開発をしているのであれば、CakePHP の提供する CakeSocket クラスを使用するのがオススメです。 使い方 GET メソッドで送信 uses('http_socket'); $socket = new HttpSocket(); $url = 'http://www.google.co.jp/search'; $query = array('q'=>'cake'); $res = $socket->get($url, $query); POST で送信したいときは最後の行の get メソッドを post にするだけです。 $res = $so

  • CakePHP で作成したショッピングサイト「BakeSale」 | Sun Limited Mt.

    MOONGIFT: ? CakePHPを使ったショッピングサイト「BakeSale」:オープンソースを毎日紹介 BakeSale- simply shopping cart ショッピングサイトが構築できるオープンソースの「BakeSale」。CakePHP RC2 を使用して作成されています。 最近は EC CUBE を使用してショッピングサイトを作成・カスタマイズする仕事が多いのですが、カスタマイズ時に少々癖があるというか独自の構成を把握しないといけないのでこうしたフレームワークを使用して作成されたものはカスタマイズするときになどに便利かもしれませんね。 結構、EC CUBE や osComerce などでは機能的に合わないときにスクラッチで開発となることがあるのですが、そのときもベースとなるものがあると、しかもそれが使い慣れた CakePHP で作成されたものとなると、便利かもしれませ

  • OpenPNE カスタマイズ まとめ1 | Sun Limited Mt.

    OpenPNE のカスタマイズが多いので少しまとめておきます。 ディレクトリ構成 openpne/config.php コンフィグファイル openpne/bin/* バッチ処理プログラム openpne/lib/ ライブラリ openpne/lib/include/* PEAR モジュール openpne/lib/smarty_plugins/* Smarty 拡張プラグイン opnepne/public_html/* DocumentRoot openpne/setup/* OpenPNE セットアップ用ファイル openpne/var/* 各種キャッシュやログなどの一時ファイル openpne/webapp/ OpenPNE のメインとなるプログラム openpne/webapp/init.inc 共通初期化ファイル openpne/webapp/lib/ OpenPNE のライブラ

  • jQuery でクッキーを扱う方法 | Sun Limited Mt.

    jQuery でクッキーを扱うのを下記サイトを参考にやってみました。 javascriptライブラリjQueryでcookieを超簡単に扱う方法 : 4GALAXYのメモ Klaus Hartl – Stilbüro : Cookie Plugin for jQuery jquery.cookie.js の準備 jquery.cookie.js をダウンロードして HTML で使えるようにします。 <script type="text/javascript" src="jquery.cookie.js"></script> クッキーの扱い方 $.cookie('the_cookie'); // get cookie $.cookie('the_cookie', 'the_value'); // set cookie $.cookie('the_cookie', 'the_value', {

  • PHP で大量メール送信を非同期で行う | Sun Limited Mt.

    PHP でメールを非同期に送信する時に PEAR の Mail_Queue を使用するときのメモです。 Mail_Queue のマニュアル PEAR :: Manual :: Mail_Queue 上記マニュアルにあるチュートリアルが分かりやすいです。 PEAR :: Manual :: チュートリアル 処理の流れとしては下記のようになります。 データベースに送信するメールを貯める cron で定期的に貯まったメールを送信する メール送信は下記のコードで行います。 $mail_queue->sendMailsInQueue($max_amount_mails); $max_amount_mail で1回に送る最大送信数を指定します。これをいくつにするか、また cron で実行する間隔をどれくらいにするかなどの調整の方がプログラムの作成よりも大変かもしれませんね。 OpenPNE でも co

  • WordPress テーマを作成する(1) | Sun Limited Mt.

    WordPress用のテーマを作ってみようと思います。始めて作成するのですが、作成過程を投稿していきます。まずは第1回目です。 テーマフォルダを作成する wp-content/themes/ 以下にテーマ用のディレクトリを作成します。 今回は test というディレクトリを作成しました。 CSS ファイルを作成する 作成したテーマディレクトリに style.css を作成します。 style.css には必要最低限の項目を書いておきます。 /* Theme Name: Test Template Theme URI: http://www.syuhari.jp/ Description: テーマ作成テスト用です。<a href='http://www.syuhari.jp/'>リンクも出来ます</a> Author: Boze Author URI: http://www.syuhari.

  • CakePHP1.2 バリデーションのルール | Sun Limited Mt.

    CakePHP1.2 のバリデーションのメモです。 詳しくは cake/libs/validation.php を見ると分かりやすいです。 半角英数字のみ alphaNumeric var $validate = array('field' => array('rule' => array('alphaNumeric'))); 文字列の長さ between var $validate = array('field' => array('rule' => array('between', 6, 8))); 半角で6文字以上8文字以内 文字列が空 blank var $validate = array('field' => array('rule' => array('blank'))); クレジットカード番号 cc var $validate = array('field' => array

  • CakePHP1.2 バリデーションで共通ルールを作成するときに便利な userDefined | Sun Limited Mt.

    CakePHP1.2 バリデーションのルールを調べているときに気になっていた Validation クラスにある userDefined に関して調べてみました。 cake/libs/validation.php function userDefined($check, $object, $method, $args = null) { return call_user_func_array(array(&$object, $method), array($check, $args)); } と定義されています。 call_user_func_array は PHP の関数で、関数やクラスのメソッドをコールすることができます。 つまり独自バリデーションがこれを使用して実装できるということです。 使用方法はモデルに以下のようにバリデーションを定義します。 var $validate = ar

  • CakePHP1.2 バッチ処理 | Sun Limited Mt.

    CakePHP1.2 にシェル機能というのがあるのを知りました。下記エントリでメールからの処理を実際に行う方法が紹介されています。 メール受信からのシェル機能実行 – Writing Some Code ちょうど CakePHP1.2で開発中のシステムで cron でのバッチ処理があるのでそれに応用してみたときのメモです。 バッチ処理で実行させるシェル機能を作成 今回は test という名前のシェル名にします。 app/vendors/shells/test.php を作成します。 < ?php class TestShell extends Shell { var $uses = array('Model'); function actionName(){ /* 実際の処理を書きます */ /* $this->uses に追加したモデルが使用できます */ $lists = $this-

  • CakePHP 携帯でセションを有効にする | Sun Limited Mt.

    CakePHP で携帯サイトの開発をしています。 ドコモなどはクッキーが使用できないのでセションID を URL で引き継がないといけないのですが、PC サイトではクッキーでセションID を保持したいところです。 携帯サイトと PC サイトが共存しているときの携帯用のビューを表示させる方法は下記が参考になります。 CakePHP 携帯用ビューを表示する | Shin x blog また、携帯でのアクセス時にクッキーを使用せずにセション を保持するのは下記が参考になります。 Docomoとセッション フォーラム – CakePHP Users in Japan 私は上記の方法に ini_set('session.use_trans_sid', 1);を入れて使用しています。 全てのリンク、フォームにセションID が付加されるので便利です。 ただリダイレクトするときだけ、 $this->red

  • 1