<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>php-tips.com</title>
    <link>https://php-tips.com/</link>
    <description>Recent content on php-tips.com</description>
    <generator>Hugo</generator>
    <language>ja</language>
    <lastBuildDate>Fri, 10 Apr 2026 20:47:25 +0900</lastBuildDate>
    <atom:link href="https://php-tips.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>プロジェクト独自の PHPStan ルール・PHPCS ルールを AI エージェントで作る</title>
      <link>https://php-tips.com/2026/04/10/custom-phpstan-phpcs-rules-with-agent/</link>
      <pubDate>Fri, 10 Apr 2026 20:47:25 +0900</pubDate>
      <guid>https://php-tips.com/2026/04/10/custom-phpstan-phpcs-rules-with-agent/</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt;
エージェント向けにルールを書いても AI は非決定的なので漏れが出るかも。
プロジェクト固有の PHPStan / PHPCS カスタムルールで機械的にチェックしよう。
カスタムルールの作成は AI エージェントにたたき台を作らせることで、手早く実装できるよ。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Docker マルチステージビルドで Node.js イメージを軽量化する</title>
      <link>https://php-tips.com/2026/04/01/docker-multistage-build-nodejs/</link>
      <pubDate>Wed, 01 Apr 2026 20:32:55 +0900</pubDate>
      <guid>https://php-tips.com/2026/04/01/docker-multistage-build-nodejs/</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Dockerfile でマルチステージビルドを使い、「ビルド用ステージ」と「実行用ステージ」を分けると devDependencies やビルドツールが最終イメージに残らなくなる。あるプロジェクトでは 2GB 弱 → 1GB 以下と半分以下にできた。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Claude Code にマシンの使えるUNIXコマンドを教えて作業効率を上げる</title>
      <link>https://php-tips.com/2026/03/30/claude-code-unix-commands-rules/</link>
      <pubDate>Mon, 30 Mar 2026 08:01:11 +0900</pubDate>
      <guid>https://php-tips.com/2026/03/30/claude-code-unix-commands-rules/</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Claude Code に &lt;code&gt;rg&lt;/code&gt;, &lt;code&gt;fd&lt;/code&gt;, &lt;code&gt;jq&lt;/code&gt; 等のインストール済みコマンドをユーザールール（&lt;code&gt;~/.claude/rules/&lt;/code&gt;）で教えると、&lt;code&gt;grep&lt;/code&gt; より &lt;code&gt;rg&lt;/code&gt;、&lt;code&gt;find&lt;/code&gt; より &lt;code&gt;fd&lt;/code&gt; を自動で選ぶようになって作業効率が上がる。プロンプト一発で棚卸しできる。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Claude Code の入力待ちで macOS 通知を鳴らす方法</title>
      <link>https://php-tips.com/2026/03/28/claude-code-notification-macos/</link>
      <pubDate>Sat, 28 Mar 2026 00:52:22 +0900</pubDate>
      <guid>https://php-tips.com/2026/03/28/claude-code-notification-macos/</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Claude Code が入力待ちになったとき、macOS のデスクトップ通知と音声読み上げで知らせるフック（hook）を設定する方法。SAY!!&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;背景&#34;&gt;背景&lt;/h2&gt;
&lt;p&gt;Claude Code はそこそこ長い時間タスクを実行することがあるので、完了したら通知してほしいですよね。&lt;/p&gt;</description>
    </item>
    <item>
      <title>ユーザー識別子とURLルートの衝突を防ぐ CakePHP プラグイン SlugGuard を公開した</title>
      <link>https://php-tips.com/2026/03/27/cakephp-slug-guard/</link>
      <pubDate>Fri, 27 Mar 2026 22:46:24 +0900</pubDate>
      <guid>https://php-tips.com/2026/03/27/cakephp-slug-guard/</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; ユーザーが入力するURLスラッグが、Webアプリケーションのルートや予約語と衝突しないようバリデーションするCakePHP 5.xプラグインを公開しました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Xdebug 3 アップグレードガイド 私訳</title>
      <link>https://php-tips.com/2020/12/28/xdebug3-upgrade-guid/</link>
      <pubDate>Mon, 28 Dec 2020 13:58:39 +0900</pubDate>
      <guid>https://php-tips.com/2020/12/28/xdebug3-upgrade-guid/</guid>
      <description>&lt;p&gt;PHP 8に対応した、Xdebug 3がリリースされました。2から設定方法が変更されていますので、iniファイルの変更が必要です。
アップグレード方法は&lt;a href=&#34;https://xdebug.org/docs/upgrade_guide&#34; rel=&#34;noopener noreferrer&#34; target=&#34;_blank&#34;&gt;ドキュメント&lt;/a&gt;に記載されています。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Symfony のコマンドラインアプリケーションを CakePHP コマンドラインアプリケーションとして動かす</title>
      <link>https://php-tips.com/2019/12/17/running-symfony-console-app-on-cakephp/</link>
      <pubDate>Tue, 17 Dec 2019 00:00:36 +0900</pubDate>
      <guid>https://php-tips.com/2019/12/17/running-symfony-console-app-on-cakephp/</guid>
      <description>&lt;p&gt;この記事は、 &lt;a href=&#34;https://qiita.com/advent-calendar/2019/cakephp&#34;&gt;CakePHP Advent Calendar 2019&lt;/a&gt; 17日目の記事です。&lt;/p&gt;
&lt;p&gt;Symfony のコマンドラインアプリケーションを CakePHP コマンドラインアプリケーションとして動かす方法を解説します。&lt;/p&gt;
&lt;p&gt;（余談ここから）昨日（12/16 JST）ついに、CakePHPの次期バージョンである4.0がstableリリースされました！ &amp;gt; &lt;a href=&#34;https://bakery.cakephp.org/2019/12/15/cakephp_400_released.html&#34;&gt;CakePHP 4.0.0 Released — Bakery&lt;/a&gt;
3.xから色々と整理され、さらに良いフレームワークになったと思います。（余談ここまで）&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHPのビューテンプレート編集を&lt;del&gt;爆速&lt;/del&gt;ちょっと楽にする PhpStorm Live Templates</title>
      <link>https://php-tips.com/2019/12/06/cakephp-live-template-on-phpstorm/</link>
      <pubDate>Fri, 06 Dec 2019 21:29:47 +0900</pubDate>
      <guid>https://php-tips.com/2019/12/06/cakephp-live-template-on-phpstorm/</guid>
      <description>&lt;p&gt;この記事は、 &lt;a href=&#34;https://qiita.com/advent-calendar/2019/cakephp&#34;&gt;CakePHP Advent Calendar 2019&lt;/a&gt; 3日目の記事です、が、6日に公開しました。&lt;/p&gt;
&lt;img src=&#34;http://php-tips.com/wp-content/uploads/2019/12/code-pe.gif&#34; alt=&#34;&#34; width=&#34;624&#34; height=&#34;388&#34; class=&#34;alignnone size-full wp-image-1290&#34; /&gt;
&lt;h2 id=&#34;phpstorm-live-template&#34;&gt;PhpStorm Live Template?&lt;/h2&gt;
&lt;p&gt;公式にヘルプがあるよ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.jetbrains.com/help/phpstorm/using-live-templates.html&#34;&gt;Live templates - Help | PhpStorm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://pleiades.io/help/phpstorm/using-live-templates.html&#34;&gt;ライブ・テンプレート - 公式ヘルプ | PhpStorm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;cakephpのビューテンプレートを書くのをちょっと楽にする&#34;&gt;CakePHPのビューテンプレートを書くのをちょっと楽にする&lt;/h2&gt;
&lt;p&gt;CakePHPのテンプレートは素のPHPです。こんな感じですね。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP 3.x の PHP 5.6向けUUID実装では衝突がおきるかもねというお話</title>
      <link>https://php-tips.com/2019/12/02/collision-uuid-cakephp3x-with-php56/</link>
      <pubDate>Mon, 02 Dec 2019 00:00:43 +0900</pubDate>
      <guid>https://php-tips.com/2019/12/02/collision-uuid-cakephp3x-with-php56/</guid>
      <description>&lt;p&gt;この記事は、 &lt;a href=&#34;https://qiita.com/advent-calendar/2019/cakephp&#34;&gt;CakePHP Advent Calendar 2019&lt;/a&gt; 2日目の記事です。&lt;/p&gt;
&lt;p&gt;1日目の記事は、hgsgtkさんの「&lt;a href=&#34;https://qiita.com/hgsgtk/items/5445ceab193947409bcc&#34;&gt;来たるCakePHP 4.0 を知ろう - Qiita&lt;/a&gt;」でした。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;TL;DR: PHP 5.6 を使っている人は &lt;a href=&#34;https://github.com/paragonie/random_compat&#34;&gt;paragonie/random_compat&lt;/a&gt; を入れましょう。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;先月に、UUIDの衝突に関する話題が盛り上がりました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>PHPカンファレンス福岡2019 マネクラからの挑戦状 Webサイトコードゴルフをやってみた</title>
      <link>https://php-tips.com/2019/07/07/phpconfuk2019-mc-challenge/</link>
      <pubDate>Sun, 07 Jul 2019 17:52:56 +0900</pubDate>
      <guid>https://php-tips.com/2019/07/07/phpconfuk2019-mc-challenge/</guid>
      <description>&lt;p&gt;PHPカンファレンス福岡2019で「マネクラからの挑戦状」というイベントがありました、現地ではマシンを持っていってなかったためやってませんでしたが、おうちでやってみました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Composer post-install-cmd で dev の時のみ実行するスクリプトを定義する</title>
      <link>https://php-tips.com/2019/01/30/composer-scripts-dev/</link>
      <pubDate>Wed, 30 Jan 2019 09:00:26 +0900</pubDate>
      <guid>https://php-tips.com/2019/01/30/composer-scripts-dev/</guid>
      <description>&lt;p&gt;require-dev のパッケージに依存したスクリプトを post-install-cmd 等のフックで dev時のみ実行したい（&amp;ndash;no-dev時には実行したくない）ときは &lt;code&gt;[ $COMPOSER_DEV_MODE -eq 0 ] || &lt;/code&gt; を実行したいスクリプトの前に付与します。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP 3 でURL情報からコントローラークラスを取得する</title>
      <link>https://php-tips.com/2018/12/17/cakephp-3-create-controller-from-url/</link>
      <pubDate>Mon, 17 Dec 2018 08:00:32 +0900</pubDate>
      <guid>https://php-tips.com/2018/12/17/cakephp-3-create-controller-from-url/</guid>
      <description>&lt;p&gt;この記事は、 &lt;a href=&#34;https://qiita.com/advent-calendar/2018/cakephp&#34;&gt;CakePHP Advent Calendar 2018&lt;/a&gt; 17日目の記事です。&lt;/p&gt;
&lt;p&gt;前日の記事は chinpei215 さんの &lt;a href=&#34;https://qiita.com/chinpei215/items/f3b66baaa50c6955a0d9&#34;&gt;CakePHP2 のデバッグツールバーをプリチーにする - Qiita&lt;/a&gt; でした。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;TL;DR: &lt;a href=&#34;https://gist.github.com/nojimage/8e9ccef4051ba3856db6f17c13a3d0af&#34;&gt;ControllerResolver.php - gist&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;CakePHP 3.4以降の話。&lt;/p&gt;
&lt;p&gt;権限コントロールまわりのアレコレのために、URL情報からコントローラークラスを取得したかったのでやってみました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>PHPUnitで名前空間付きのモッククラスを作る</title>
      <link>https://php-tips.com/2018/10/25/phpunit-generate-mock-class-with-namespace/</link>
      <pubDate>Thu, 25 Oct 2018 14:46:46 +0900</pubDate>
      <guid>https://php-tips.com/2018/10/25/phpunit-generate-mock-class-with-namespace/</guid>
      <description>&lt;p&gt;TL;DR: &lt;code&gt;class_alias&lt;/code&gt; を使う。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;PHPUnit 5.7&lt;/p&gt;
&lt;p&gt;&lt;code&gt;\Awesome\GeartInterface&lt;/code&gt; というインターフェースから &lt;code&gt;\Awesome\MockClass&lt;/code&gt; という名前でモッククラスを作成したい。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;setMockClassName&lt;/code&gt;で&lt;code&gt;\Awesome\MockClass&lt;/code&gt;を指定すると名前空間付のクラスは作成できないと怒られる。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP3 beforeSaveでassociatedを書き換える時の注意点</title>
      <link>https://php-tips.com/2018/10/25/cakephp3-rewrite-associated-on-beforesave/</link>
      <pubDate>Thu, 25 Oct 2018 09:00:38 +0900</pubDate>
      <guid>https://php-tips.com/2018/10/25/cakephp3-rewrite-associated-on-beforesave/</guid>
      <description>&lt;p&gt;TL;DR: beforeSaveでassociatedを書き換えるときは、ドット記法は使えないので配列で指定する。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;code&gt;Authors&lt;/code&gt; hasMany &lt;code&gt;Posts&lt;/code&gt; hasMany &lt;code&gt;Comments&lt;/code&gt; のリレーションがあるとする。&lt;/p&gt;
&lt;p&gt;Authorsから、Posts、Commentsをまとめてsaveしたい場合、通常のsaveであれば&lt;code&gt;associated&lt;/code&gt;に指定してやればよい。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Chronosを1.2へバージョンアップしよう</title>
      <link>https://php-tips.com/2018/08/10/update-to-chronos-1-2/</link>
      <pubDate>Fri, 10 Aug 2018 19:58:38 +0900</pubDate>
      <guid>https://php-tips.com/2018/08/10/update-to-chronos-1-2/</guid>
      <description>&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;composer require cakephp/chronos:^1.2
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;setTestNow()&lt;/code&gt;メソッドがクラスを横断して時刻セットできるようなった！&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;CakePHP 3.2以降、時刻操作クラスとして &lt;a href=&#34;https://github.com/cakephp/chronos&#34;&gt;cakephp/chronos&lt;/a&gt; が採用されています。
CakePHP内ではChronosを継承した &lt;code&gt;\Cake\I18n\FrozenTime&lt;/code&gt;, &lt;code&gt;\Cake\I18n\Time&lt;/code&gt;, &lt;code&gt;\Cake\I18n\FrozenDate&lt;/code&gt;, &lt;code&gt;\Cake\I18n\Date&lt;/code&gt; を使用でき、データベースの時刻系のフィールドはこれらのクラスへマッピングされます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>composer で memory_limit にひかかった場合の対処方法</title>
      <link>https://php-tips.com/2018/07/31/how-to-resolve-composer-memory_limit-error/</link>
      <pubDate>Tue, 31 Jul 2018 19:12:19 +0900</pubDate>
      <guid>https://php-tips.com/2018/07/31/how-to-resolve-composer-memory_limit-error/</guid>
      <description>&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;COMPOSER_MEMORY_LIMIT=-1 composer.phar &amp;lt;...&amp;gt;

OR

php -d memory_limit=-1 composer.phar &amp;lt;...&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ここを見るがよい: &lt;a href=&#34;https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors&#34;&gt;Memory limit errors - Troubleshooting - Composer&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;composer updateを叩いたら以下ようなメッセージでメモリ足りませんエラーとなる。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;PHP Fatal error:  Allowed memory size of 1610612736 bytes exhausted
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;symfony系などの依存の激しいパッケージが入っていると足りなくなりがち。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Let&amp;#8217;s Encrypt発行の証明書を使用しているプライベートdocker registryを使う</title>
      <link>https://php-tips.com/2018/07/31/lets-encrypt-with-private-docker-registry/</link>
      <pubDate>Tue, 31 Jul 2018 09:59:41 +0900</pubDate>
      <guid>https://php-tips.com/2018/07/31/lets-encrypt-with-private-docker-registry/</guid>
      <description>&lt;p&gt;&lt;code&gt;docker login registry.example.com:5000&lt;/code&gt; で以下のような証明書エラーが出る人向け。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Error response from daemon: Get https://registry.example.com:5000/v2/: x509: certificate signed by unknown authority
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;docker-for-mac&#34;&gt;Docker for Mac&lt;/h2&gt;
&lt;p&gt;Step 1. &lt;a href=&#34;https://letsencrypt.org/certificates/&#34;&gt;Chain of Trust - Let&amp;rsquo;s Encrypt - Free SSL/TLS Certificates&lt;/a&gt; から次の中間証明書を取得&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Let’s Encrypt Authority X3 (IdenTrust cross-signed)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;証明書のリンク先は拡張子が &lt;code&gt;.txt&lt;/code&gt; となっているので、拡張子 &lt;code&gt;.pem&lt;/code&gt; に変更して保存する。&lt;/p&gt;</description>
    </item>
    <item>
      <title>住所からGoogle Mapへのリンクを生成する</title>
      <link>https://php-tips.com/2018/07/12/make-googlemap-link/</link>
      <pubDate>Thu, 12 Jul 2018 20:08:50 +0900</pubDate>
      <guid>https://php-tips.com/2018/07/12/make-googlemap-link/</guid>
      <description>&lt;p&gt;TL;DR&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://www.google.com/maps/search/?api=1&amp;amp;query={address}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;読め &amp;gt; &lt;a href=&#34;https://developers.google.com/maps/documentation/urls/guide#search-action&#34;&gt;Developer Guide  |  Maps URLs  |  Google Developers&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;なんか、ググるとURLが &lt;code&gt;https://maps.google.co.jp&lt;/code&gt; のだったり古い情報しかでてこない。
2018年7月時点では↑が正しい。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{address}&lt;/code&gt;は住所で、URLエスケープした住所。PHPでやるなら&lt;code&gt;urlencode&lt;/code&gt;か&lt;code&gt;http_build_query&lt;/code&gt;で組み立てる。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP3でhasManyの取得件数を制限する</title>
      <link>https://php-tips.com/2018/06/13/cakephp3-limit-on-hasmany/</link>
      <pubDate>Wed, 13 Jun 2018 09:57:06 +0900</pubDate>
      <guid>https://php-tips.com/2018/06/13/cakephp3-limit-on-hasmany/</guid>
      <description>&lt;p&gt;&lt;code&gt;Posts hasMany Comments&lt;/code&gt; の関係で、最新のCommentsを3件だけ紐付けて取得したい場合を考える。&lt;/p&gt;
&lt;h2 id=&#34;1-containに書く方法&#34;&gt;1. &lt;code&gt;contain&lt;/code&gt;に書く方法&lt;/h2&gt;
&lt;p&gt;再利用を考えなければ以下のように、&lt;code&gt;contain&lt;/code&gt;でクエリを書けばよい。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Composer scripts あれこれ</title>
      <link>https://php-tips.com/2018/06/05/composer-scripts-tips/</link>
      <pubDate>Tue, 05 Jun 2018 20:26:08 +0900</pubDate>
      <guid>https://php-tips.com/2018/06/05/composer-scripts-tips/</guid>
      <description>&lt;h2 id=&#34;composer-list-で表示される一覧に説明文をつける&#34;&gt;composer list で表示される一覧に説明文をつける&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://getcomposer.org/doc/articles/scripts.md#custom-descriptions-&#34;&gt;Custom descriptions | Scripts - Composer&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;scripts-descriptions&lt;/code&gt; を定義すればOK。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;	&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;scripts&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;test&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;phpunit&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;scripts-descriptions&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;test&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Run all tests!&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;タイムアウトを調整する&#34;&gt;タイムアウトを調整する&lt;/h2&gt;
&lt;p&gt;デフォルトでは300secなので、Codeceptionの受け入れテスト等、時間のかかるスクリプトは以下のようなタイムアウトエラーが出る。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Gitでローカル側のマージ済みブランチを削除したい</title>
      <link>https://php-tips.com/2018/04/27/git-delete-merged-branch/</link>
      <pubDate>Fri, 27 Apr 2018 08:15:44 +0900</pubDate>
      <guid>https://php-tips.com/2018/04/27/git-delete-merged-branch/</guid>
      <description>&lt;p&gt;GitHub/Gitlab に Pull Request / Merge Requestを送ってリモートレポジトリでマージされたもう不要なブランチがローカル側に溜まっていく問題。&lt;/p&gt;
&lt;p&gt;一個一個削除していくのは面倒だからまとめて削除したい。&lt;/p&gt;</description>
    </item>
    <item>
      <title>homebrew/php が死んでた</title>
      <link>https://php-tips.com/2018/04/13/homebrew-php-is-dead/</link>
      <pubDate>Fri, 13 Apr 2018 20:53:04 +0900</pubDate>
      <guid>https://php-tips.com/2018/04/13/homebrew-php-is-dead/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://github.com/Homebrew/homebrew-php&#34;&gt;Homebrew/homebrew-php: ? Homebrew/php (deprecated)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Homebrew 1.5 で、homebrew/coreに統合されたのこと。
php53, php54, php55 は削除、php56, php70, php71 は &lt;a href=&#34;mailto:php@5.6&#34;&gt;php@5.6&lt;/a&gt;, &lt;a href=&#34;mailto:php@7.0&#34;&gt;php@7.0&lt;/a&gt;, &lt;a href=&#34;mailto:php@7.1&#34;&gt;php@7.1&lt;/a&gt; として core へ。 php71-* のような拡張のパッケージは削除され、php@7.1 で組み込みでビルドされている。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Composerでオレフォークを利用する方法</title>
      <link>https://php-tips.com/2018/03/17/how-to-use-own-fork-on-composer/</link>
      <pubDate>Sat, 17 Mar 2018 11:00:10 +0900</pubDate>
      <guid>https://php-tips.com/2018/03/17/how-to-use-own-fork-on-composer/</guid>
      <description>&lt;p&gt;PHPにおいて外部ライブラリーを使用するときには、Packagistで公開されているライブラリーをComposerを利用してインストールすることがほとんどかと思います。&lt;/p&gt;</description>
    </item>
    <item>
      <title>2017年に公開した自作CakePHPプラグインの紹介</title>
      <link>https://php-tips.com/2017/12/17/my-cakephp-plugins-2017/</link>
      <pubDate>Sun, 17 Dec 2017 00:00:13 +0900</pubDate>
      <guid>https://php-tips.com/2017/12/17/my-cakephp-plugins-2017/</guid>
      <description>&lt;p&gt;この記事は、 &lt;a href=&#34;https://qiita.com/advent-calendar/2017/cakephp&#34;&gt;CakePHP Advent Calendar 2017&lt;/a&gt; 17日目の記事です。&lt;/p&gt;
&lt;p&gt;前日の記事は sizuhiko さんの &lt;a href=&#34;https://qiita.com/sizuhiko/items/0e9e11f55d8b9f220af0&#34;&gt;テストデータを簡単に作る方法&lt;/a&gt; でした。&lt;/p&gt;
&lt;p&gt;今日は、私 nojimage が2017年に公開したCakePHP 3向けのプラグインをだだだっと紹介したいと思います。&lt;/p&gt;</description>
    </item>
    <item>
      <title>twitter-text-php 1.14.2</title>
      <link>https://php-tips.com/2017/09/25/twitter-text-php-1-14-2/</link>
      <pubDate>Mon, 25 Sep 2017 08:00:13 +0900</pubDate>
      <guid>https://php-tips.com/2017/09/25/twitter-text-php-1-14-2/</guid>
      <description>&lt;p&gt;長らく放置していた、 &lt;a href=&#34;https://github.com/nojimage/twitter-text-php&#34;&gt;twitter-text-php&lt;/a&gt; のアップデートをリリースしました。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/nojimage/twitter-text-php&#34;&gt;nojimage/twitter-text-php - GitHub&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;namespace, PHP7対応が主な修正点となります。&lt;/p&gt;
&lt;p&gt;namespace対応により、以下のようにクラス名を変更しています。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP の書き方</title>
      <link>https://php-tips.com/2016/12/25/how-to-write-cakephp/</link>
      <pubDate>Sun, 25 Dec 2016 08:00:25 +0900</pubDate>
      <guid>https://php-tips.com/2016/12/25/how-to-write-cakephp/</guid>
      <description>&lt;p&gt;この記事は、&lt;a href=&#34;http://qiita.com/advent-calendar/2016/cakephp3&#34;&gt;CakePHP3 Advent Calendar 2016&lt;/a&gt; 25日目の記事ではありません。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Controller/Componentにビジネスロジックを書かない&lt;/li&gt;
&lt;li&gt;カスタムfindを活用しよう&lt;/li&gt;
&lt;li&gt;1テーブル1モデルではなく、場面によってモデルクラスを増やそう&lt;/li&gt;
&lt;li&gt;Modelless Form / Tableless Modelを活用しよう&lt;/li&gt;
&lt;li&gt;beforeSave/afterSaveは諸刃の刃&lt;/li&gt;
&lt;li&gt;Behaviorにビジネスロジック書くのもあり&lt;/li&gt;
&lt;li&gt;View層ではView Cell/View Blockを活用しよう&lt;/li&gt;
&lt;li&gt;CRUDプラグインお勧め&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;この記事を書いた動機&#34;&gt;この記事を書いた動機&lt;/h2&gt;
&lt;p&gt;CakePHPにおいてビジネスロジックに該当するものをComponentに書くという記事を見かけるたびに、それはアンチパターンじゃないのと感じている日々。&lt;br&gt;
ビジネスロジックをどこに書くべきか、共通処理をどこに書くべきかというのを、自分の考えを整理する意味でも記事として残しておきたいと思います。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP3 Modelless Form @ Fukuoka.php vol.17</title>
      <link>https://php-tips.com/2016/06/23/cakephp3-modelless-form-fukuoka-php-vol-17/</link>
      <pubDate>Thu, 23 Jun 2016 08:53:03 +0900</pubDate>
      <guid>https://php-tips.com/2016/06/23/cakephp3-modelless-form-fukuoka-php-vol-17/</guid>
      <description>&lt;p&gt;Fukuoka.php vol.17 にて、CakePHP 3からの新機能「Modelless Form」の紹介をしてきました。&lt;/p&gt;
&lt;script async class=&#34;speakerdeck-embed&#34; data-id=&#34;824e9c9d16444078827563007c90713d&#34; data-ratio=&#34;1.33333333333333&#34; src=&#34;//speakerdeck.com/assets/embed.js&#34;&gt;&lt;/script&gt;
&lt;p&gt;Modelless Formは、これまでのCakePHPに足りていなかったサービスレイヤ、ビジネスロジックを担当するものとして最適の機構だと考えています。
（Component?知らない子ですね…&lt;/p&gt;</description>
    </item>
    <item>
      <title>PHPカンファレンス福岡2016 CakePHP3補足</title>
      <link>https://php-tips.com/2016/05/21/phpconfuk2016-cakephp3/</link>
      <pubDate>Sat, 21 May 2016 23:25:38 +0900</pubDate>
      <guid>https://php-tips.com/2016/05/21/phpconfuk2016-cakephp3/</guid>
      <description>&lt;h2 id=&#34;companycompany_idemployeeemployee_id&#34;&gt;/company/{:company_id}/employee/{:employee_id}&lt;/h2&gt;
&lt;p&gt;それ、Router::resources()のネストでできるよ。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://book.cakephp.org/3.0/en/development/routing.html#creating-nested-resource-routes&#34;&gt;&lt;a href=&#34;http://book.cakephp.org/3.0/en/development/routing.html#creating-nested-resource-routes&#34;&gt;http://book.cakephp.org/3.0/en/development/routing.html#creating-nested-resource-routes&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;entityのsettergetter問題&#34;&gt;Entityのsetter/getter問題&lt;/h2&gt;
&lt;p&gt;それ、Custom Typesの定義で解決できるよ。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://book.cakephp.org/3.0/en/orm/database-basics.html#adding-custom-types&#34;&gt;&lt;a href=&#34;http://book.cakephp.org/3.0/en/orm/database-basics.html#adding-custom-types&#34;&gt;http://book.cakephp.org/3.0/en/orm/database-basics.html#adding-custom-types&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;modelless-form&#34;&gt;Modelless Form&lt;/h2&gt;
&lt;p&gt;今回触れられていないけど、個人的にはこれがCakePHP3で一番の目玉機能。一般的なフォームからの入力処理だけでなく、API経由での入力処理や、_execute中で複数のTable扱ったり色々可能性が拡が（文字数&lt;/p&gt;</description>
    </item>
    <item>
      <title>PHPカンファレンス福岡2016 LT &amp;#8220;Codeceptionでテストをしよう&amp;#8221;</title>
      <link>https://php-tips.com/2016/05/21/phpconfuk2016-lt-codeception/</link>
      <pubDate>Sat, 21 May 2016 21:56:54 +0900</pubDate>
      <guid>https://php-tips.com/2016/05/21/phpconfuk2016-lt-codeception/</guid>
      <description>&lt;p&gt;2016/05/21に福岡での開催は2度目となるPHPカンファレンスに参加しました。&lt;/p&gt;
&lt;p&gt;今回、CodeceptionについてLTをさせて頂きました。
5分間という短い時間でしたので簡単な内容ではありますが、発表に使用したスライドを公開します。(15分枠欲しかった…&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ansibleでyum関連操作が遅い</title>
      <link>https://php-tips.com/2015/07/23/ansible-yum-module-is-slow/</link>
      <pubDate>Thu, 23 Jul 2015 08:30:00 +0900</pubDate>
      <guid>https://php-tips.com/2015/07/23/ansible-yum-module-is-slow/</guid>
      <description>&lt;p&gt;yum-fastestmirror が邪魔をしている。&lt;/p&gt;
&lt;p&gt;対策として、yum-fastestmirrorをアンインストールするか、&lt;code&gt;/etc/yum/pluginconf.d/fastestmirror.conf&lt;/code&gt;で&lt;code&gt;enanbled=0&lt;/code&gt;としてプラグインを無効化する。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP 3 プラグインの名前空間をベンダー名付きにする方法</title>
      <link>https://php-tips.com/2015/07/03/cakephp3-load-plugin-with-vender-namespace/</link>
      <pubDate>Fri, 03 Jul 2015 09:48:56 +0900</pubDate>
      <guid>https://php-tips.com/2015/07/03/cakephp3-load-plugin-with-vender-namespace/</guid>
      <description>&lt;p&gt;詳しくはこちらを、&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://book.cakephp.org/3.0/en/plugins.html#loading-a-plugin&#34; title=&#34;Plugins — CakePHP Cookbook 3.x documentation&#34;&gt;Plugins — CakePHP Cookbook 3.x documentation&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;CakePHP 3の標準ではプラグイン名＝名前空間名となります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Foo&lt;/code&gt;というプラグイン名なら、モデルやコントローラーの名前空間は、&lt;code&gt;\Foo\Model&lt;/code&gt;や&lt;code&gt;\Foo\Controller&lt;/code&gt;になります。
&lt;code&gt;AcmeCorp\ContactManager\Model&lt;/code&gt;, &lt;code&gt;AcmeCorp\ContactManager\Controller&lt;/code&gt;のようにベンダー名などを含めた名前空間をプラグインで使用したい場合は、以下のように&lt;code&gt;/&lt;/code&gt;で区切って呼び出します。&lt;/p&gt;</description>
    </item>
    <item>
      <title>PHPカンファレンス福岡2015に行ってきました</title>
      <link>https://php-tips.com/2015/07/01/phpconfuk-2015/</link>
      <pubDate>Wed, 01 Jul 2015 13:20:07 +0900</pubDate>
      <guid>https://php-tips.com/2015/07/01/phpconfuk-2015/</guid>
      <description>&lt;p&gt;6/27(土)に、福岡では初の開催となる&lt;a href=&#34;http://phpcon.fukuoka.jp/&#34;&gt;PHPカンファレンス福岡&lt;/a&gt;へ参加してきました。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://togetter.com/li/840239&#34;&gt;PHPカンファレンス福岡2015まとめ #phpconfuk - Togetterまとめ&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;福岡のPHP関連では久々の大きなイベントということで、スタッフのみなさまの苦労は大変なものだったと思います。おかげさまで楽しく参加することができました。スタッフのみなさま、登壇者のみなさま、ありがとうございました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP 3ではデータソース設定にprefixを指定できない</title>
      <link>https://php-tips.com/2015/06/17/cakephp3-datasource-prefix/</link>
      <pubDate>Wed, 17 Jun 2015 09:57:47 +0900</pubDate>
      <guid>https://php-tips.com/2015/06/17/cakephp3-datasource-prefix/</guid>
      <description>&lt;p&gt;CakePHP 3からは、Datasource設定で&lt;code&gt;prefix&lt;/code&gt;の指定ができなくなっています。&lt;/p&gt;
&lt;p&gt;マニュアルを見ても設定オプションに&lt;code&gt;prefix&lt;/code&gt;がない。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://book.cakephp.org/3.0/en/orm/database-basics.html#configuration&#34;&gt;Database Basics — CakePHP Cookbook 3.x documentation&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP 3では識別子がクォートされなくなっている</title>
      <link>https://php-tips.com/2015/06/12/cakephp3-identifier-quoting-disabled-by-default/</link>
      <pubDate>Fri, 12 Jun 2015 09:00:41 +0900</pubDate>
      <guid>https://php-tips.com/2015/06/12/cakephp3-identifier-quoting-disabled-by-default/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://book.cakephp.org/3.0/en/appendices/orm-migration.html#identifier-quoting-disabled-by-default&#34; title=&#34;New ORM Upgrade Guide — CakePHP Cookbook 3.x documentation&#34;&gt;New ORM Upgrade Guide — CakePHP Cookbook 3.x documentation&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;h3 id=&#34;identifier-quoting-disabled-by-default&#34;&gt;Identifier Quoting Disabled by Default&lt;/h3&gt;
&lt;p&gt;In the past CakePHP has always quoted identifiers. Parsing SQL snippets and attempting to quote identifiers was both error prone and expensive. If you are following the conventions CakePHP sets out, the cost of identifier quoting far outweighs any benefit it provides. Because of this identifier quoting has been disabled by default in 3.0.&lt;/p&gt;</description>
    </item>
    <item>
      <title>勉強会のタイトルに「第n回」という表記は必要ない</title>
      <link>https://php-tips.com/2015/02/05/not-required-numbering-for-study-session/</link>
      <pubDate>Thu, 05 Feb 2015 03:03:58 +0900</pubDate>
      <guid>https://php-tips.com/2015/02/05/not-required-numbering-for-study-session/</guid>
      <description>&lt;p&gt;単純に開催年月を付ければよい。&lt;/p&gt;
&lt;p&gt;と、勉強会に行きたいけど途中から参加するのは敷居が高いかなーと感じていそうな人のツイートを見て思った。&lt;/p&gt;</description>
    </item>
    <item>
      <title>どうしてCakePHPを選ぶのか / CakePHP Advent Calendar 2014</title>
      <link>https://php-tips.com/2014/12/08/why-we-choose-cakephp__cakephp-advent-calendar-2014/</link>
      <pubDate>Mon, 08 Dec 2014 08:00:55 +0900</pubDate>
      <guid>https://php-tips.com/2014/12/08/why-we-choose-cakephp__cakephp-advent-calendar-2014/</guid>
      <description>&lt;div class=&#34;note&#34; style=&#34;margin-bottom: 2em&#34;&gt;この投稿は&lt;a href=&#34;http://qiita.com/advent-calendar/2014/cakephp&#34; target=&#34;_blank&#34;&gt;CakePHP Advent Calendar 2014&lt;/a&gt;の8日目の記事です。
&lt;/div&gt;
&lt;p&gt;先週はものすごく寒かったですね。こんにちは nojimage です。&lt;/p&gt;
&lt;p&gt;今回は技術的な話はほとんどなくて、自分語りになります。ゴメンナサイ。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Laravel belongsToManyのattach()の挙動について</title>
      <link>https://php-tips.com/2014/08/22/laravel-belongstomany-attach/</link>
      <pubDate>Fri, 22 Aug 2014 23:35:55 +0900</pubDate>
      <guid>https://php-tips.com/2014/08/22/laravel-belongstomany-attach/</guid>
      <description>&lt;blockquote class=&#34;twitter-tweet&#34; lang=&#34;ja&#34;&gt;&lt;p&gt;Laravel belongsToMany::attachの挙動が単純追加なんだけどそれでいいのか？&lt;/p&gt;&amp;mdash; nojimage (@nojimage) &lt;a href=&#34;https://twitter.com/nojimage/statuses/502303948825317378&#34;&gt;2014, 8月 21&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src=&#34;//platform.twitter.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;
&lt;p&gt;&lt;a href=&#34;http://laravel.com/docs/eloquent#inserting-related-models&#34; title=&#34;Laravel - The PHP framework for web artisans.&#34;&gt;Inserting Related Models - Laravel Documentation&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;LaravelのEloquentでのお話。belongsToManyでリレーションを作って、attachで関連を追加するぜーとしてみてところ、同じIDをいれても再現なく関連が追加される。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP 2.x &#43; PHPUnit on NetBeans 第3版</title>
      <link>https://php-tips.com/2014/06/28/cakephp-2-x-phpunit-on-netbeans-3/</link>
      <pubDate>Sat, 28 Jun 2014 00:19:15 +0900</pubDate>
      <guid>https://php-tips.com/2014/06/28/cakephp-2-x-phpunit-on-netbeans-3/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://php-tips.com/2012/03/19/cakephp-2x-phpunit-on-netbeans-2&#34;&gt;CakePHPのテストをNetBeans上で実行する記事&lt;/a&gt;の改訂版です。&lt;/p&gt;
&lt;p&gt;NetBeansからのPHPUnit実行時に、&lt;code&gt;cake test&lt;/code&gt; コマンドを実行するようにすれば、Fixtureを読み込むためのNetBeansSuite.phpの置き換えなどは不要だよね。という話です。&lt;/p&gt;</description>
    </item>
    <item>
      <title>NetBeans phpenv環境のphpunitを使う</title>
      <link>https://php-tips.com/2014/06/10/use-phpenv-phpunit-on-netbeans/</link>
      <pubDate>Tue, 10 Jun 2014 09:00:57 +0900</pubDate>
      <guid>https://php-tips.com/2014/06/10/use-phpenv-phpunit-on-netbeans/</guid>
      <description>&lt;p&gt;phpenv環境でNetBeansを使用している場合、phpunit等のPHPツールをバージョンごとに切り替えて使用する方法を紹介します。&lt;/p&gt;
&lt;p&gt;[ad]&lt;/p&gt;
&lt;h2 id=&#34;phpenv環境のphpを利用する&#34;&gt;phpenv環境のphpを利用する&lt;/h2&gt;
&lt;p&gt;「設定」&amp;gt;「PHP」&amp;gt;「一般」のphpインタプリタのパスを&lt;code&gt;/usr/local/phpenv/shims/php&lt;/code&gt;等、phpenvのパスに設定します。&lt;/p&gt;</description>
    </item>
    <item>
      <title>NetBeans 8.0 on Mac OSX 外部スクリプト実行時のエラー回避策</title>
      <link>https://php-tips.com/2014/05/01/netbeans-8-0-on-mac-osx-fixes-ext-script-runtime-error/</link>
      <pubDate>Thu, 01 May 2014 23:11:12 +0900</pubDate>
      <guid>https://php-tips.com/2014/05/01/netbeans-8-0-on-mac-osx-fixes-ext-script-runtime-error/</guid>
      <description>&lt;p&gt;Mac OSX 10.9.2, NetBeans 8.0 patch1, JDK 1.8.0_05 で確認しています。&lt;/p&gt;
&lt;p&gt;OSX上のNetBeansで、PHPUnitなどの外部スクリプト実行時に、&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Bounds exceeds available space : size=262144, offset=262145
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;のような、エラーダイヤログが表示される場合、&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP 1.3.18 および 2.4.9 のリリース</title>
      <link>https://php-tips.com/2014/05/01/release-cakephp-1-3-18-and-2-4-9/</link>
      <pubDate>Thu, 01 May 2014 22:50:47 +0900</pubDate>
      <guid>https://php-tips.com/2014/05/01/release-cakephp-1-3-18-and-2-4-9/</guid>
      <description>&lt;p&gt;CakePHP 1.3系および2.4系に対して、セキュリティ修正を含むリリースがでています。&lt;/p&gt;
&lt;p&gt;SecurityComponentの改ざんチェック機構に不備があり、意図しない処理が行われる可能性があります。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP 2.x メール送信内容のテストを行う</title>
      <link>https://php-tips.com/2014/04/19/cakephp-2x-email-mock-tests/</link>
      <pubDate>Sat, 19 Apr 2014 00:14:38 +0900</pubDate>
      <guid>https://php-tips.com/2014/04/19/cakephp-2x-email-mock-tests/</guid>
      <description>&lt;p&gt;テストでメールを送信せずに、CakeEmailでのレンダリング内容を取りたい場合は、&lt;/p&gt;
&lt;pre class=&#34;lang:php decode:true &#34;&gt;// モックを作成
$CakeEmail = $this-&amp;gt;getMock(&#39;CakeEmail&#39;, array(&#39;transportClass&#39;));
$CakeEmail-&amp;gt;expects($this-&amp;gt;any())-&amp;gt;method(&#39;transportClass&#39;)
    -&amp;gt;will($this-&amp;gt;returnValue(new DebugTransport()));

// CakeEmailのMockをセット
$TestTarget-&amp;gt;CakeEmail = $CakeEmail;

// ... $TestTargetを使った何らかのメール送信を含む処理

// text形式のメッセージを取得
$bodyText = $CakeEmail-&amp;gt;message(CakeEmail::MESSAGE_TEXT);
// html形式のメッセージを取得
$bodyHtml = $CakeEmail-&amp;gt;message(CakeEmail::MESSAGE_HTML);	

// ... 適宜、値チェック

&lt;/pre&gt;
&lt;p&gt;てな感じで、&lt;code&gt;CakeEmail::transportClass()&lt;/code&gt;をスタブ化して&lt;code&gt;DebugTransport&lt;/code&gt;を返すようにする。で、&lt;code&gt;CakeEmail::message()&lt;/code&gt;でbodyを取得する。&lt;/p&gt;</description>
    </item>
    <item>
      <title>NetBeansでリモートマシンのphpunitを実行する</title>
      <link>https://php-tips.com/2014/04/14/netbeans%E3%81%A7%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%9E%E3%82%B7%E3%83%B3%E3%81%AEphpunit%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B/</link>
      <pubDate>Mon, 14 Apr 2014 08:53:54 +0900</pubDate>
      <guid>https://php-tips.com/2014/04/14/netbeans%E3%81%A7%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%9E%E3%82%B7%E3%83%B3%E3%81%AEphpunit%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B/</guid>
      <description>&lt;p&gt;最近の開発ではローカルマシン上ではなく、Vagrant等を利用しての仮想環境を用いた開発が主流となってきました。そこで、NetBeansからテストをリモートマシン上で実行し、結果を取得するスクリプトを紹介します。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Facebook Grapth APIのレスポンスからReason-Phraseがなくなっていた（CakePHPの場合）</title>
      <link>https://php-tips.com/2014/03/20/facebook-grapth-api-response/</link>
      <pubDate>Thu, 20 Mar 2014 22:00:18 +0900</pubDate>
      <guid>https://php-tips.com/2014/03/20/facebook-grapth-api-response/</guid>
      <description>&lt;p&gt;3/13 - 14にかけて、graph.facebook.comがアップデートされたようで、レスポンスのStatus-LineにReason-Phraseが含まれなくなっていました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>TLDを取得するクローラーを書いてみた</title>
      <link>https://php-tips.com/2014/03/01/tld-crawler/</link>
      <pubDate>Sat, 01 Mar 2014 16:46:59 +0900</pubDate>
      <guid>https://php-tips.com/2014/03/01/tld-crawler/</guid>
      <description>&lt;p&gt;トップレベルドメインの判別をするコードがあるのですが、ドメインが増えたときにいちいちチェックするのも面倒なので、チェック用の正規表現を書き出すクローラースクリプトを書きました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHPで環境に応じた設定ファイルを読み込むためのプラグイン</title>
      <link>https://php-tips.com/2014/02/12/cakephp-environment-plugin/</link>
      <pubDate>Wed, 12 Feb 2014 08:30:11 +0900</pubDate>
      <guid>https://php-tips.com/2014/02/12/cakephp-environment-plugin/</guid>
      <description>&lt;p&gt;&lt;a title=&#34;nojimage/cakephp-environment&#34; href=&#34;https://github.com/nojimage/cakephp-environment&#34;&gt;nojimage/cakephp-environment&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;環境に応じた設定を行うためのプラグインを公開しています。 環境はファイルベースで判別するので、開発環境と本番環境の切り替えをスムーズに行うことができます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP 2.xをComposerでインストールする</title>
      <link>https://php-tips.com/2014/02/08/cakephp2-composer-install/</link>
      <pubDate>Sat, 08 Feb 2014 04:07:08 +0900</pubDate>
      <guid>https://php-tips.com/2014/02/08/cakephp2-composer-install/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://php-tips.com/wp-content/uploads/2014/02/logo-composer-transparent.png&#34;&gt;&lt;img class=&#34;size-full wp-image-867 aligncenter&#34; alt=&#34;logo-composer-transparent&#34; src=&#34;http://php-tips.com/wp-content/uploads/2014/02/logo-composer-transparent.png&#34; width=&#34;300&#34; height=&#34;356&#34; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;CakePHP 3.xではComposerが正式にサポートされますが、2.xでもComposerを使ってCaekPHPのコアを管理することができます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP Hash::combine() でキーと値の組み合わせがずれる</title>
      <link>https://php-tips.com/2013/12/18/cakephp-hash-combine/</link>
      <pubDate>Wed, 18 Dec 2013 10:13:13 +0900</pubDate>
      <guid>https://php-tips.com/2013/12/18/cakephp-hash-combine/</guid>
      <description>&lt;p&gt;CakePHP 2.2以降で利用できる&lt;a href=&#34;http://book.cakephp.org/2.0/ja/core-utility-libraries/hash.html#Hash::combine&#34;&gt;Hashクラスのcombineメソッド&lt;/a&gt;には以下の罠があります。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Code:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
&lt; ?php
$data = [
	[
		&#39;id&#39; =&gt; 1,
		&#39;title&#39; =&gt; &#39;first title&#39;,
		&#39;body&#39; =&gt; &#39;first content&#39;
	],
	[
		&#39;id&#39; =&gt; 3,
		&#39;title&#39; =&gt; &#39;second title&#39;,
		&#39;body&#39; =&gt; &#39;second content&#39;,
		&#39;more&#39; =&gt; &#39;second more content&#39;
	],
	[
		&#39;id&#39; =&gt; 5,
		&#39;title&#39; =&gt; &#39;third title&#39;,
		&#39;body&#39; =&gt; &#39;third content&#39;,
		&#39;more&#39; =&gt; &#39;third more content&#39;
	],
];

$results = Hash::combine($data, &#39;{n}.id&#39;, &#39;{n}.more&#39;);

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;この場合、$resultsは以下の値になることを期待するでしょう。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHPのCookieComponent::writeのencryptがデフォルトでは暗号になってない件</title>
      <link>https://php-tips.com/2013/12/12/cakephp-cookiecomponent/</link>
      <pubDate>Thu, 12 Dec 2013 22:48:03 +0900</pubDate>
      <guid>https://php-tips.com/2013/12/12/cakephp-cookiecomponent/</guid>
      <description>&lt;blockquote class=&#34;twitter-tweet&#34; lang=&#34;ja&#34;&gt;正しいタイトル→ CakePHPのCookieComponent::writeのencryptがデフォルトでは暗号になってない件 ですね / “PHP はいつもわたしに新鮮な驚きを与えてくれる - 猫型の蓄音機は 1 分間に 45…” &lt;a href=&#34;http://t.co/UkWZCHbtGN&#34;&gt;http://t.co/UkWZCHbtGN&lt;/a&gt;
&lt;p&gt;— Hisateru Tanaka (@tanakahisateru) &lt;a href=&#34;https://twitter.com/tanakahisateru/statuses/410794216277561344&#34;&gt;2013, 12月 11&lt;/a&gt;&lt;/blockquote&gt;
 &lt;/p&gt;</description>
    </item>
    <item>
      <title>CakeEmailのメールアドレスチェックを回避する</title>
      <link>https://php-tips.com/2013/07/12/avoid-cakeemail-email-address-validatio/</link>
      <pubDate>Fri, 12 Jul 2013 22:34:50 +0900</pubDate>
      <guid>https://php-tips.com/2013/07/12/avoid-cakeemail-email-address-validatio/</guid>
      <description>&lt;p&gt;この記事はCakePHP2以降、2.4.0までを対象とした記事です。&lt;/p&gt;
&lt;p&gt;CakePHP2からCakeEmailクラスにおいて、メールアドレスのセット時に&lt;code&gt;Validation::email()&lt;/code&gt;を用いた検証が行われるようになりました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP 2.2のHash::extract()はCentOS5/RHEL5系では使えない</title>
      <link>https://php-tips.com/2013/05/10/cakephp-2-x-hash-extract-centos5/</link>
      <pubDate>Fri, 10 May 2013 22:50:04 +0900</pubDate>
      <guid>https://php-tips.com/2013/05/10/cakephp-2-x-hash-extract-centos5/</guid>
      <description>&lt;p&gt;先日CakePHPのバグレポートをしたのでご報告。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://cakephp.lighthouseapp.com/projects/42648/tickets/3821-hashextract-not-working-on-centos-5&#34;&gt;#3821 Hash::extract() not working on CentOS 5 - CakePHP - cakephp&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;※この話はCakePHP2.2 - 2.3.4までが該当します。次バージョン(2.3.5)以降は修正が適用されるため大丈夫です。&lt;/p&gt;</description>
    </item>
    <item>
      <title>[NetBeans] PHPDocからpeclパッケージに含まれるクラス・関数などの補完用ファイルを作る</title>
      <link>https://php-tips.com/2013/02/21/netbeans-create-completion-file-fro-phpdoc/</link>
      <pubDate>Thu, 21 Feb 2013 23:33:48 +0900</pubDate>
      <guid>https://php-tips.com/2013/02/21/netbeans-create-completion-file-fro-phpdoc/</guid>
      <description>&lt;p&gt;NetBeansではPHPの組み込み関数やクラスなどを補完してくれる機能があり効率よくコーディングが可能です。しかし、pecl拡張については補完用ファイルが存在しないため、そのままでは補完してくれません。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP 2.xでJSONPに対応する</title>
      <link>https://php-tips.com/2013/01/23/how-to-return-jsonp-response-on-cakephp/</link>
      <pubDate>Wed, 23 Jan 2013 20:05:55 +0900</pubDate>
      <guid>https://php-tips.com/2013/01/23/how-to-return-jsonp-response-on-cakephp/</guid>
      <description>&lt;p&gt;CakePHP 2.xにおいて、JSONPに対応する方法を紹介します。&lt;/p&gt;
&lt;p&gt;下記に、jsonpに対応したレスポンスを返すためのコードを示します。
既にjsonでレスポンスを返せる状態となっていることが前提です。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP 2.x &#43; PHPUnit on NetBeans 第2版</title>
      <link>https://php-tips.com/2012/03/19/cakephp-2x-phpunit-on-netbeans-2/</link>
      <pubDate>Mon, 19 Mar 2012 09:00:56 +0900</pubDate>
      <guid>https://php-tips.com/2012/03/19/cakephp-2x-phpunit-on-netbeans-2/</guid>
      <description>&lt;p&gt;&lt;strong style=&#34;color: red&#34;&gt;2014-06-27 注記: NetBeans 8.0以降向けに&lt;a href=&#34;http://php-tips.com/2014/06/28/cakephp-2-x-phpunit-on-netbeans-3/&#34; title=&#34;CakePHP 2.x + PHPUnit on NetBeans 第3版&#34;&gt;CakePHP 2.x + PHPUnit on NetBeans 第3版&lt;/a&gt;を書きました。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;先日、&lt;a href=&#34;http://php-tips.com/php/2012/01/cakephp2-0-phpunit-on-netbeans&#34;&gt;CakePHPのテストをNetBeans上で実行する記事&lt;/a&gt;を書きましたが、Fixtureの作成に問題がありそのままでは実用に堪えませんでした。&lt;/p&gt;
&lt;p&gt;色々試行錯誤した結果、NetBeans側を修正することでFixtureの読み込みを行うようにするのがよい感じでしたのでその方法をご紹介します。&lt;/p&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP 1.3/2.0でView blocksっぽいことを可能にするHelperメソッド</title>
      <link>https://php-tips.com/2012/03/15/helper-method-like-view-blocks-for-cakephp-13-20/</link>
      <pubDate>Thu, 15 Mar 2012 09:00:11 +0900</pubDate>
      <guid>https://php-tips.com/2012/03/15/helper-method-like-view-blocks-for-cakephp-13-20/</guid>
      <description>&lt;p&gt;CakePHP 2.1がリリースされました。2.0から大きく変わる部分は少ないですが、2.1での目玉機能の一つとして&lt;a href=&#34;http://book.cakephp.org/2.0/en/views.html#using-view-blocks&#34;&gt;View blocks&lt;/a&gt;が挙げられます。&lt;/p&gt;
&lt;p&gt;Viewの指定した部分をバッファリングして、後で呼び出すことができる機能ですが、1.3/2.0系でも似たようなことができるヘルパーメソッドを作成していたので公開します。&lt;/p&gt;
&lt;p&gt;個別のビューでバッファリングした要素を、レイアウトctpなどから後で呼び出すことができるので、ビュー別のサイドバーカスタマイズなどに利用できます。&lt;/p&gt;
&lt;p&gt;2.1のView blocksとの違いは、ViewクラスのメソッドではなくHelperクラスのメソッドであること、start/endによるバッファリングではなく、指定エレメントファイルをバッファリングするものであることです。&lt;/p&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP2.0ではBehaviorのbeforeFindメソッドで戻り値を必ず返すこと</title>
      <link>https://php-tips.com/2012/02/29/cakephp2-0%E3%81%A7%E3%81%AFbehavior%E3%81%AEbeforefind%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%81%A7%E6%88%BB%E3%82%8A%E5%80%A4%E3%82%92%E5%BF%85%E3%81%9A%E8%BF%94%E3%81%99%E3%81%93%E3%81%A8/</link>
      <pubDate>Wed, 29 Feb 2012 20:38:56 +0900</pubDate>
      <guid>https://php-tips.com/2012/02/29/cakephp2-0%E3%81%A7%E3%81%AFbehavior%E3%81%AEbeforefind%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%81%A7%E6%88%BB%E3%82%8A%E5%80%A4%E3%82%92%E5%BF%85%E3%81%9A%E8%BF%94%E3%81%99%E3%81%93%E3%81%A8/</guid>
      <description>&lt;p&gt;CakePHP 1.3ではBehaviorのbeforeFindメソッドで戻り値を戻さなくてもよかったのですが、CakePHP 2.0からは必ず戻さないといけません。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP2.0 &#43; PHPUnit on NetBeans</title>
      <link>https://php-tips.com/2012/01/23/cakephp2-0-phpunit-on-netbeans/</link>
      <pubDate>Mon, 23 Jan 2012 08:30:30 +0900</pubDate>
      <guid>https://php-tips.com/2012/01/23/cakephp2-0-phpunit-on-netbeans/</guid>
      <description>&lt;p&gt;CakePHP 2.0のリリースから3ヶ月が経ち、2.0での開発を検討することが多くなってきているかと思います。私もやっと昨年末辺りから各プラグインの移行等々2.0での開発を始めているところです。&lt;/p&gt;
&lt;p&gt;今回は、NetBeans上で効率よくテストするための設定方法をご紹介します。この設定を行うことで、NetBeans上からテストの作成、実行、実装とテストの切替えが容易に行えるようになります。&lt;/p&gt;
&lt;p&gt;&lt;strong style=&#34;color: red&#34;&gt;2012-03-19注記: 本設定のみでは、CakePHPのFixtureを用いたテストを行うことができません。&lt;a href=&#34;http://php-tips.com/php/cakephp-php/2012/03/cakephp-2x-phpunit-on-netbeans-2&#34; title=&#34;CakePHP 2.x + PHPUnit on NetBeans 第2版&#34;&gt;Fixtureを利用できるようにする方法についてはこちらで紹介している&lt;/a&gt;のであわせてお読みください。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style=&#34;color: red&#34;&gt;2012-01-24注記: 本設定方法では、CakePHPのFixtureを用いたテストを行うことができません。Fixtureを利用できるようにする方法を検討中です。（ご存知の方が居れば教えてください orz &lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;0. CakePHP 2.0, PHPUnit のインストール&lt;/h3&gt;
&lt;p&gt;これがないと始まりませんね。PHPUnitは、 &lt;a href=&#34;http://www.phpunit.de/manual/3.6/ja/installation.html&#34;&gt;第3章 PHPUnit のインストール&lt;/a&gt; を参考にインストールしましょう。&lt;/p&gt;
&lt;p&gt;また、NetBeansからPHPUnitを利用できるように、NetBeansの環境設定でPHPUnitのパスを設定しておきます。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://php-tips.com/wp-content/uploads/2012/01/0_phpunit.png&#34;&gt;&lt;img src=&#34;http://php-tips.com/wp-content/uploads/2012/01/0_phpunit.png&#34; alt=&#34;&#34; title=&#34;0_phpunit&#34; width=&#34;756&#34; height=&#34;466&#34; class=&#34;alignnone size-full wp-image-707&#34; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;CakePHPのファイル取得は、gitが利用できるのであれば、&lt;a href=&#34;https://github.com/cakephp/cakephp&#34;&gt;github&lt;/a&gt; から clone するのが早いかと思います。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/cakephp/cakephp.git /path_to/cake_project&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;CakeとPHPUnitの準備ができたらNetBeansでプロジェクトを作成します。&lt;/p&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHPで使えるテンプレートエンジンまとめ (CakePHP Advent Calendar 2011 17日目)</title>
      <link>https://php-tips.com/2011/12/17/cakephp-advent-calendar-2011-17/</link>
      <pubDate>Sat, 17 Dec 2011 09:00:57 +0900</pubDate>
      <guid>https://php-tips.com/2011/12/17/cakephp-advent-calendar-2011-17/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;http://php-tips.com/wp-content/uploads/2011/12/cakephp_logo_250_trans-150x150.png&#34; alt=&#34;&#34; title=&#34;cakephp_logo_250_trans&#34; width=&#34;150&#34; height=&#34;150&#34; class=&#34;alignleft size-thumbnail wp-image-695&#34; /&gt;こんにちは、nojimageです。この記事は &lt;a href=&#34;http://atnd.org/events/22721&#34;&gt;CakePHP Advent Calendar 2011&lt;/a&gt; 17日目の記事として書いています。前日は &lt;a href=&#34;https://twitter.com/#!/BiMihoujyun&#34;&gt;@BiMihoujyun&lt;/a&gt;さんの「&lt;a href=&#34;http://bimi.jpn.com/?p=188&#34;&gt;BMB » CakePHP2から追加されたCakeEmailをおいしく頂く。&lt;/a&gt;」というエントリーでした。CakePHP2.0ではメール周りに関してかなり改善されていますので、ぜひ先の記事を参考にして試してみてください。&lt;/p&gt;</description>
    </item>
    <item>
      <title>PHP Matsuri 2011 in OSAKAに参加してきました</title>
      <link>https://php-tips.com/2011/10/23/2011phpmatsuri-epicsax-guy/</link>
      <pubDate>Sun, 23 Oct 2011 01:32:07 +0900</pubDate>
      <guid>https://php-tips.com/2011/10/23/2011phpmatsuri-epicsax-guy/</guid>
      <description>&lt;p&gt;先日10月15日、16日に大阪で行われた EPIC SAX GUY 10hoursを聞く会に参加してきました。&lt;/p&gt;
&lt;iframe width=&#34;560&#34; height=&#34;315&#34; src=&#34;http://www.youtube.com/embed/KHy7DGLTt8g&#34; frameborder=&#34;0&#34; allowfullscreen&gt;&lt;/iframe&gt;
&lt;p&gt;ではなく。&lt;a href=&#34;http://2011.phpmatsuri.net/&#34; target=&#34;_blank&#34;&gt;PHP Matsuri 2011 in OSAKA&lt;/a&gt; に参加してきました。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PHP Matsuri とは&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;昨年から行われているPHPerによるPHPerのための日本最大級のハッカソンイベントです。
海の近くのホテルにみんなで泊まって楽しいひとときを過ごすのです。&lt;/p&gt;
&lt;p&gt;どんなイベントだったかは、参加者の方々が素晴らしい記事を書かれていますので
そちらをご覧になるとよりわかるかなと。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://2011.phpmatsuri.net/page/blog-and-picture-of-participants&#34;&gt;感想ブログ、写真 » PHP Matsuri 2011&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;結論&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style=&#34;font-size:24px;line-height: 1.6&#34;&gt;来年も参加したいです。これを読んでいるあなたも是非ご一緒に！&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;（大事なことは先に言いましょう。&lt;/p&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>OSXへのGearmanセットアップメモ (macports)</title>
      <link>https://php-tips.com/2011/09/29/setup-gearman-to-osx/</link>
      <pubDate>Thu, 29 Sep 2011 21:53:04 +0900</pubDate>
      <guid>https://php-tips.com/2011/09/29/setup-gearman-to-osx/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://gearman.org/&#34;&gt;Gearman&lt;/a&gt;をMac OS Xへインストールしたときの覚書。&lt;/p&gt;
&lt;pre class=&#34;bash&#34;&gt;&lt;code&gt;sudo port install gearmand +drizzle
sudo port install php5-gearman&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;ジョブキューをMySQLへ入れたいので、drizzleオプションをつけて。
あと、peclのgearman拡張も入れる。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP Skel Plugin &amp;#8211; CakePHPプロジェクトのひな形</title>
      <link>https://php-tips.com/2011/08/03/cakephp-skel-plugin-cakephp/</link>
      <pubDate>Wed, 03 Aug 2011 22:23:26 +0900</pubDate>
      <guid>https://php-tips.com/2011/08/03/cakephp-skel-plugin-cakephp/</guid>
      <description>&lt;p&gt;CakePHPのプロジェクトを素早く立ち上げるためのプラグイン&lt;a href=&#34;http://php-tips.com/php/cakephp-php/2011/04/cakephp-kickstart-plugin&#34;&gt;Kickstart&lt;/a&gt;を以前ご紹介しましたが、それに関連して、CakePHPのプロジェクトのひな形を提供するskelを公開しています。&lt;/p&gt;
&lt;p&gt;nojimage/CakePHP-skel - GitHub
&lt;a href=&#34;https://github.com/nojimage/CakePHP-skel&#34;&gt;&lt;a href=&#34;https://github.com/nojimage/CakePHP-skel&#34;&gt;https://github.com/nojimage/CakePHP-skel&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;※このプラグインはCakePHP1.3向けです。
※08/25 appディレクトリを対象とするbakeについて追記しました。&lt;/p&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>PHPTAL with CakePHP デザイナー向けCakePHP勉強会LT発表資料</title>
      <link>https://php-tips.com/2011/08/01/phptal-with-cakephp/</link>
      <pubDate>Mon, 01 Aug 2011 20:17:21 +0900</pubDate>
      <guid>https://php-tips.com/2011/08/01/phptal-with-cakephp/</guid>
      <description>&lt;p&gt;少し日が空いてしまいましたが、先日の&lt;a href=&#34;http://atnd.org/events/17625&#34;&gt;デザイナー向けCakePHP勉強会&lt;/a&gt;でLTをさせていただきました。&lt;/p&gt;
&lt;p&gt;日本ではあまりなじみのない&lt;a href=&#34;http://phptal.org/&#34;&gt;PHPTAL&lt;/a&gt;というテンプレートエンジンについての内容です。&lt;/p&gt;
&lt;p&gt;[ad]&lt;/p&gt;
&lt;div style=&#34;width:425px&#34; id=&#34;__ss_8658473&#34;&gt; &lt;strong style=&#34;display:block;margin:12px 0 4px&#34;&gt;&lt;a href=&#34;http://www.slideshare.net/nojimage/phptal-with-cakephp&#34; title=&#34;PHPTAL with CakePHP&#34; target=&#34;_blank&#34;&gt;PHPTAL with CakePHP&lt;/a&gt;&lt;/strong&gt; &lt;iframe src=&#34;http://www.slideshare.net/slideshow/embed_code/8658473&#34; width=&#34;425&#34; height=&#34;355&#34; frameborder=&#34;0&#34; marginwidth=&#34;0&#34; marginheight=&#34;0&#34; scrolling=&#34;no&#34;&gt;&lt;/iframe&gt; &lt;div style=&#34;padding:5px 0 12px&#34;&gt; View more &lt;a href=&#34;http://www.slideshare.net/&#34; target=&#34;_blank&#34;&gt;presentations&lt;/a&gt; from &lt;a href=&#34;http://www.slideshare.net/nojimage&#34; target=&#34;_blank&#34;&gt;Takashi Nojima&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;
&lt;p&gt;発表時の音声付きのスライドは下記のZENPREからご覧いただけます。
&lt;a href=&#34;http://zenpre.net/p/mueF8&#34;&gt;PHPTAL with CakePHP - デザイナー向けCakePHP勉強会 | ZENPRE（ゼンプレ）&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>WordPressをssh2で更新する設定メモ</title>
      <link>https://php-tips.com/2011/07/20/wordpress-update-with-ssh-setting/</link>
      <pubDate>Wed, 20 Jul 2011 22:22:12 +0900</pubDate>
      <guid>https://php-tips.com/2011/07/20/wordpress-update-with-ssh-setting/</guid>
      <description>&lt;p&gt;WordPressのアップデート機能でftpではなくsshによる更新が可能なことを知ったのでメモ&lt;/p&gt;
&lt;p&gt;なんでsshなのかというとftpサーバを立てたくないから。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.icoro.com/201001204678.html&#34;&gt;icoro : WordPress on CentOS – SSHで自動アップデートするには&lt;br /&gt;&lt;a href=&#34;http://www.icoro.com/201001204678.html&#34;&gt;http://www.icoro.com/201001204678.html&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;基本的には上記記事を参考にすればOK&lt;/p&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHPのテストケースメソッド名は日本語でおＫ</title>
      <link>https://php-tips.com/2011/06/02/cakephp-testcase-method-allowed-japanese/</link>
      <pubDate>Thu, 02 Jun 2011 22:56:44 +0900</pubDate>
      <guid>https://php-tips.com/2011/06/02/cakephp-testcase-method-allowed-japanese/</guid>
      <description>&lt;p&gt;CakePHPのテストケースメソッド名は日本語でも書けます。&lt;/p&gt;
&lt;p&gt;メソッド名の頭に「test」とつけていればOK&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/1004459.js?file=japanese.test.php&#34;&gt;&lt;/script&gt;
&lt;p&gt;実行結果:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://php-tips.com/wp-content/uploads/2011/06/japanese-test-method.png&#34;&gt;&lt;img src=&#34;http://php-tips.com/wp-content/uploads/2011/06/japanese-test-method-300x122.png&#34; alt=&#34;&#34; title=&#34;japanese-test-method&#34; width=&#34;300&#34; height=&#34;122&#34; class=&#34;alignnone size-medium wp-image-614&#34; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;コンソールでの実行結果:&lt;/p&gt;</description>
    </item>
    <item>
      <title>mod_rewrite (.htaccess) で簡単メンテナンスモード</title>
      <link>https://php-tips.com/2011/05/27/mod_rewrite-htaccess-maintenance/</link>
      <pubDate>Fri, 27 May 2011 22:25:29 +0900</pubDate>
      <guid>https://php-tips.com/2011/05/27/mod_rewrite-htaccess-maintenance/</guid>
      <description>&lt;blockquote&gt;Webアプリフレームワークの「簡単メンテナンスモード」コンテストにエントリーされる方はいらっしゃいませんか。&lt;a href=&#34;http://d.hatena.ne.jp/tanakahisateru/20110527/1306495794&#34;&gt;http://d.hatena.ne.jp/tanakahisateru/20110527/1306495794&lt;/a&gt; (いろんなフレームワークの性格が見えて面白いと思う)&lt;/blockquote&gt;
&lt;a href=&#34;http://twitter.com/tanakahisateru/status/74078560624721920&#34;&gt;http://twitter.com/tanakahisateru/status/74078560624721920&lt;/a&gt;
&lt;p&gt;さあ、お待ちかね mod_rewrite / .htaccessの場合です。&lt;/p&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHPで簡単メンテナンスモード</title>
      <link>https://php-tips.com/2011/05/27/cakephp-maintenance-plugi/</link>
      <pubDate>Fri, 27 May 2011 22:04:05 +0900</pubDate>
      <guid>https://php-tips.com/2011/05/27/cakephp-maintenance-plugi/</guid>
      <description>&lt;blockquote&gt;Webアプリフレームワークの「簡単メンテナンスモード」コンテストにエントリーされる方はいらっしゃいませんか。&lt;a href=&#34;http://d.hatena.ne.jp/tanakahisateru/20110527/1306495794&#34;&gt;http://d.hatena.ne.jp/tanakahisateru/20110527/1306495794&lt;/a&gt; (いろんなフレームワークの性格が見えて面白いと思う)&lt;/blockquote&gt;
&lt;a href=&#34;http://twitter.com/tanakahisateru/status/74078560624721920&#34;&gt;http://twitter.com/tanakahisateru/status/74078560624721920&lt;/a&gt;
&lt;p&gt;ということで、CakePHPの場合です。&lt;/p&gt;</description>
    </item>
    <item>
      <title>MySQL WorkBenchで外部サーバへSSHを通して接続する方法</title>
      <link>https://php-tips.com/2011/05/23/mysql-workbench-with-ssh-connection/</link>
      <pubDate>Mon, 23 May 2011 22:20:33 +0900</pubDate>
      <guid>https://php-tips.com/2011/05/23/mysql-workbench-with-ssh-connection/</guid>
      <description>&lt;p&gt;今日はMySQLのGUI管理ツールである&amp;quot;&lt;a href=&#34;http://wb.mysql.com/&#34;&gt;MySQL WorkBench&lt;/a&gt;&amp;ldquo;でSSHトンネルを使って、リモートのMySQLデータベース/サーバを管理する方法をご紹介します。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://dev.mysql.com/downloads/workbench/5.2.html&#34;&gt;MySQL WorkBenchの入手はこちらから&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SSHトンネルで接続できると何が嬉しいの？&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;SSHのポートが空いていれば、MySQL WBを使ってGUIで快適にDBの管理作業が出来ます。&lt;/li&gt;
	&lt;li&gt;SSHを通しての通信になるので通信内容は全て暗号化されます。&lt;/li&gt;
	&lt;li&gt;phpMyAdminなどといったレガシーなWebベースのツールとはもうおさらば！&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP1.3のForm HelperをHTML5対応にする</title>
      <link>https://php-tips.com/2011/05/03/cakephp13-html5-form-helper/</link>
      <pubDate>Tue, 03 May 2011 22:27:51 +0900</pubDate>
      <guid>https://php-tips.com/2011/05/03/cakephp13-html5-form-helper/</guid>
      <description>&lt;p&gt;CakePHP 1.x系ののヘルパーはHTML5に対応していません。
（CakePHP2.0では対応されます。&lt;/p&gt;
&lt;p&gt;FormHelperのinputメソッドでは、type属性にHTML5の属性（number,email等)を入れてしまうと、inputタグではなくtextareaタグとして出力されてしまいます。&lt;/p&gt;
&lt;p&gt;非常に残念な感じなので、CakePHP2.0から修正をバックポートしてみます。&lt;/p&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHPのプラグインViewを上書きする</title>
      <link>https://php-tips.com/2011/05/03/cakephp-override-plugin-views/</link>
      <pubDate>Tue, 03 May 2011 22:15:55 +0900</pubDate>
      <guid>https://php-tips.com/2011/05/03/cakephp-override-plugin-views/</guid>
      <description>&lt;p&gt;今日は軽めのネタをひとつ。&lt;/p&gt;
&lt;p&gt;CakePHP1.3では、APP側からプラグインのViewを上書きすることができます。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://book.cakephp.org/view/1647/Overriding-plugin-views-from-inside-your-applicati&#34;&gt;Overriding plugin views from inside your application :: Plugin Views :: Plugins :: Developing with CakePHP :: The Manual :: 1.3 Collection&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP Kickstart Plugin</title>
      <link>https://php-tips.com/2011/04/13/cakephp-kickstart-plugin/</link>
      <pubDate>Wed, 13 Apr 2011 22:17:42 +0900</pubDate>
      <guid>https://php-tips.com/2011/04/13/cakephp-kickstart-plugin/</guid>
      <description>&lt;p&gt;CakePHPプロジェクトを立ち上げやすくするため、Kickstartプラグインなるものを作りはじめています。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/nojimage/CakePHP-Kickstart-Plugin&#34;&gt;nojimage/CakePHP-Kickstart-Plugin - GitHub&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;日本語での説明はこちら
&lt;a href=&#34;https://github.com/nojimage/CakePHP-Kickstart-Plugin/wiki&#34;&gt;CakePHP Kickstart plugin - GitHub&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>エイプリルフールバージョンの作り方 for CakePHP</title>
      <link>https://php-tips.com/2011/04/01/cakephp-how-to-make-aprilfool-ver/</link>
      <pubDate>Fri, 01 Apr 2011 14:57:36 +0900</pubDate>
      <guid>https://php-tips.com/2011/04/01/cakephp-how-to-make-aprilfool-ver/</guid>
      <description>&lt;p&gt;こんにちは、ありがとウサギです。今年もエイプリルフールがやってきましたね。&lt;/p&gt;
&lt;p&gt;さて、今日はCakePHPで作られたサイトでエイプリルフール用にサイトを書き換えるTipsをご紹介します。
※この記事は、CakePHP 1.3向けです。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP 1.3.8の気になった点まとめ</title>
      <link>https://php-tips.com/2011/03/22/cakephp-1-3-8/</link>
      <pubDate>Tue, 22 Mar 2011 12:31:57 +0900</pubDate>
      <guid>https://php-tips.com/2011/03/22/cakephp-1-3-8/</guid>
      <description>&lt;p&gt;CakePHP 1.3.8が出たので、気になった変更点のまとめ。&lt;/p&gt;
&lt;p&gt;リリースノート
&lt;a href=&#34;http://bakery.cakephp.org/articles/markstory/2011/03/20/cakephp_1_3_8_and_1_2_10_released&#34;&gt;CakePHP 1.3.8 and 1.2.10 released | The Bakery, Everything CakePHP&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ChangeLog
&lt;a href=&#34;http://cakephp.org/changelogs/1.3.8&#34;&gt;CakePHP: the rapid development php framework. Changelogs&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1.3.7から1.3.8の差分
&lt;a href=&#34;https://github.com/cakephp/cakephp/compare/1.3.7...1.3.8&#34;&gt;Comparing 1.3.7&amp;hellip;1.3.8 for cakephp&amp;rsquo;s cakephp - GitHub&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;で、気になった点（Twitterで発言してた分）。&lt;/p&gt;</description>
    </item>
    <item>
      <title>MySQL Workbench 5.2 &amp;#8211; export to PHP format plugin</title>
      <link>https://php-tips.com/2011/03/22/mysql-workbench-5-2-export-php-format-plugin/</link>
      <pubDate>Tue, 22 Mar 2011 09:00:28 +0900</pubDate>
      <guid>https://php-tips.com/2011/03/22/mysql-workbench-5-2-export-php-format-plugin/</guid>
      <description>&lt;h3&gt;何をするの?&lt;/h3&gt;
&lt;p&gt;MySQL Workbenchで発行したクエリ(SELECT文等)の結果をPHPの連想配列形式にて出力するプラグインです。
実データからテストデータを作成する場合などに有用かと存じ上げます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP TextlieHelperの作り方</title>
      <link>https://php-tips.com/2011/02/07/cakephp-textliehelper/</link>
      <pubDate>Mon, 07 Feb 2011 09:00:41 +0900</pubDate>
      <guid>https://php-tips.com/2011/02/07/cakephp-textliehelper/</guid>
      <description>&lt;p&gt;RedmineのWikiで下書きした文章をそのままCakePHPで表示したいなー、という微妙な欲求のためTexliteが使えるヘルパーがないかと探したところありました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHPプラグインのwebrootをシンボリックリンクするシェルコマンド</title>
      <link>https://php-tips.com/2011/02/04/cakephp-plugin-webroot-ln-shell/</link>
      <pubDate>Fri, 04 Feb 2011 09:00:32 +0900</pubDate>
      <guid>https://php-tips.com/2011/02/04/cakephp-plugin-webroot-ln-shell/</guid>
      <description>&lt;p&gt;やっぱりサゴーゾが一番ですよね。こんにちはnojimageです。
今日は、CakePHPでプラグイン内部にcss,js等を持つ場合に、若干のパフォーマンスアップを行うためのシェルスクリプトのご紹介です。&lt;/p&gt;
&lt;p&gt;プラグイン内部のcss,jsは、特に対策を行わなければDispatcherを通して出力され、これはかなりのオーバヘッドを伴います。
この対策として、APP/webroot配下にシンボリックリンクを張ることで、.htaccessに記述されているmod_rewriteの設定により直接apacheから出力するようにできます。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2011.04.22追記: Themeにも対応しました。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHPのACLを高速化するSessionAclコンポーネント</title>
      <link>https://php-tips.com/2011/01/21/cakephp-sessionacl-component/</link>
      <pubDate>Fri, 21 Jan 2011 12:00:32 +0900</pubDate>
      <guid>https://php-tips.com/2011/01/21/cakephp-sessionacl-component/</guid>
      <description>&lt;p&gt;1月17日に行われた、CakePHP新春勉強会@東京に福岡サテライトから参加しました。
CakePHP2.0についての内容など色々と素晴らしい発表がありましたね。&lt;/p&gt;
&lt;p&gt;私もLTをさせていただいたのですがその内容をご紹介します。&lt;/p&gt;
&lt;div id=zpd_N_2T3 style=&#39;width:425px&#39;&gt;&lt;object id=&#39;zpo_N_2T3&#39; width=&#39;425&#39; height=&#39;360&#39;&gt;&lt;param name=&#39;movie&#39; value=&#39;http://www.zenpre.net/swf/ja/zenpreEmbed.swf&#39; /&gt;&lt;param name=&#39;flashvars&#39; value=&#39;pid=N_2T3&amp;socketServer=www.zenpre.net&amp;presentId=435&amp;nowSlideIndex=14&amp;channelId=712880&#39; /&gt;&lt;param name=&#39;bgcolor&#39; value=&#39;#FFFFFF&#39; /&gt;&lt;param name=&#39;quality&#39; value=&#39;high&#39; /&gt;&lt;param name=&#39;allowFullScreen&#39; value=&#39;true&#39;/&gt;&lt;param name=&#39;allowScriptAccess&#39; value=&#39;always&#39; /&gt;&lt;embed name=&#39;zpe_N_2T3&#39; src=&#39;http://www.zenpre.net/swf/ja/zenpreEmbed.swf&#39; type=&#39;application/x-shockwave-flash&#39; quality=&#39;high&#39; allowScriptAccess=&#39;always&#39; allowfullscreen=&#39;true&#39; pluginspage=&#39;http://www.adobe.com/go/getflashplayer&#39; bgcolor=&#39;#FFFFFF&#39; width=&#39;425&#39; height=&#39;360&#39; flashvars=&#39;pid=N_2T3&amp;socketServer=www.zenpre.net&amp;presentId=435&amp;nowSlideIndex=14&amp;channelId=712880&#39;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;p&gt;SlideShare: &lt;a href=&#34;http://www.slideshare.net/nojimage/cakephp-sessionacl-component&#34;&gt;CakePHP SessionAcl Component&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>ServersMan@VPS sshd, iptables, httpdを元に戻す</title>
      <link>https://php-tips.com/2010/12/28/serversmanvps/</link>
      <pubDate>Tue, 28 Dec 2010 12:09:49 +0900</pubDate>
      <guid>https://php-tips.com/2010/12/28/serversmanvps/</guid>
      <description>&lt;p&gt;どうも、ServersMan@VPSを使っていて、27日のメンテナンスにより見事にhttpdを落とされたnojimageです、こんにちは。&lt;/p&gt;
&lt;p&gt;というわけで、sshdを22番以外のポートで運用していたにも関わらず、3843番に変更されてサーバに接続できなくなった私からの対処法のご紹介です。&lt;/p&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>BakerがCakePHPのために.bashrcに設定すべき5行 (CakePHP Advent Calendar 2010 17日目)</title>
      <link>https://php-tips.com/2010/12/17/cakephp-advent-calendar-2010-17/</link>
      <pubDate>Fri, 17 Dec 2010 09:00:37 +0900</pubDate>
      <guid>https://php-tips.com/2010/12/17/cakephp-advent-calendar-2010-17/</guid>
      <description>&lt;p&gt;こんにちは、nojimageです。&lt;a href=&#34;https://gist.github.com/743016&#34;&gt;aerithさん&lt;/a&gt;からバトンを受けての CakePHP Advent Calendar 2010 17日目です。今日もユルユルな感じでいきましょう。はい。
今日のtipsは、Linux/Macを開発環境で使っている方向けのシェル環境設定のお話です。
（Windowsの人はゴメンナサイ。&lt;/p&gt;
&lt;pre class=&#34;brush: bash&#34;&gt;
CAKE_CONSOLE=/path_to_cakephp_root/cake/console
PATH=$CAKE_CONSOLE:$PATH
alias cake=&#39;cake/console/cake&#39;
alias bake=&#39;cake bake&#39;
alias cake-cc=&#34;find ./app/tmp/cache -type f -name &#39;cake_*&#39; -exec rm {} \;&#34;
&lt;/pre&gt;
&lt;p&gt;Bakerなら上記の5行をbashへ設定しておくと、作業がちょっぴり楽になります。
さっそくユーザホームにある .bashrc へ追記してみましょう。&lt;/p&gt;
&lt;pre class=&#34;brush: bash&#34;&gt;
vim ~/.bashrc
&lt;/pre&gt;
&lt;p&gt;.bashrcを編集したら、&lt;/p&gt;
&lt;pre class=&#34;brush: bash&#34;&gt;
source ~/.bashrc
&lt;/pre&gt;
&lt;p&gt;として設定を反映するのを忘れずに。&lt;/p&gt;
&lt;p&gt;それでは、それぞれの行の意味について簡単に解説します。&lt;/p&gt;</description>
    </item>
    <item>
      <title>PHPマニュアル 日本語版をPDF化してみた</title>
      <link>https://php-tips.com/2010/11/11/php-manual-convert-pdf/</link>
      <pubDate>Thu, 11 Nov 2010 21:56:21 +0900</pubDate>
      <guid>https://php-tips.com/2010/11/11/php-manual-convert-pdf/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://cake.eizoku.com/cakephp-irc.html&#34;&gt;某IRCチャット&lt;/a&gt;で、PHPマニュアルのPDFをEvernoteとかに突っ込んでおくとオフラインでも見れて便利だよね。という話があったので作ってみました。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.php.net/download-docs.php&#34;&gt;PHP: Download documentation&lt;/a&gt; から、Japaneseのhtml.gzを拾ってきて、ブラウザで開いてPDFでプリント！ とやろうとしましたが、1.5Gぐらいメモリを消費しつつ結局最後はエラーで失敗という結果に。&lt;/p&gt;</description>
    </item>
    <item>
      <title>tw2mv &amp;#8211; twitterとmixiボイスを連携するスクリプト version 2.1.5</title>
      <link>https://php-tips.com/2010/11/11/tw2mv-twitter%E3%81%A8mixi%E3%83%9C%E3%82%A4%E3%82%B9%E3%82%92%E9%80%A3%E6%90%BA%E3%81%99%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88-version-2-1-5/</link>
      <pubDate>Thu, 11 Nov 2010 21:37:46 +0900</pubDate>
      <guid>https://php-tips.com/2010/11/11/tw2mv-twitter%E3%81%A8mixi%E3%83%9C%E3%82%A4%E3%82%B9%E3%82%92%E9%80%A3%E6%90%BA%E3%81%99%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88-version-2-1-5/</guid>
      <description>&lt;p&gt;tw2mvの潜在バグにより、Twitterからmixiボイスへの転送が重複する状態となっていました。これに対する修正を行った version 2.1.5 をリリースしています。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHPでmixi Graph APIを扱うためのプラグイン MixiKit 0.1を公開しました</title>
      <link>https://php-tips.com/2010/10/06/cakephp_mixi-graph-api_plugin_on_github/</link>
      <pubDate>Wed, 06 Oct 2010 09:00:29 +0900</pubDate>
      <guid>https://php-tips.com/2010/10/06/cakephp_mixi-graph-api_plugin_on_github/</guid>
      <description>&lt;p&gt;先の記事に書いた通り、&lt;a href=&#34;http://php-tips.com/php/cakephp-php/2010/10/phpmatsuri2010_mixi-graph-api_cakephp-plugin&#34;&gt;PHP Matsuri 2010にて作成した&lt;/a&gt;CakePHP向けのmixi Graph APIを扱うためのプラグイン&amp;quot;MixiKit&amp;quot;をgithubにて公開しています。&lt;/p&gt;</description>
    </item>
    <item>
      <title>PHP Matsuriでmixi Graph APIのCakePHP Pluginを作ってきました</title>
      <link>https://php-tips.com/2010/10/05/phpmatsuri2010_mixi-graph-api_cakephp-plugin/</link>
      <pubDate>Tue, 05 Oct 2010 01:57:09 +0900</pubDate>
      <guid>https://php-tips.com/2010/10/05/phpmatsuri2010_mixi-graph-api_cakephp-plugin/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://php-tips.com/wp-content/uploads/2010/10/phpmatsuri2010.png&#34;&gt;&lt;img src=&#34;http://php-tips.com/wp-content/uploads/2010/10/phpmatsuri2010.png&#34; alt=&#34;phpmatsuri2010&#34; title=&#34;phpmatsuri2010&#34; width=&#34;320&#34; height=&#34;195&#34; class=&#34;alignnone size-full wp-image-472&#34; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;PHPerの祭典、&lt;a href=&#34;http://2010.phpmatsuri.net/&#34;&gt;PHP Matsuri&lt;/a&gt;に行ってきました。&lt;/p&gt;
&lt;p&gt;PHP Matsuriとは、10月2日、3日の2日間にわたって開催された、日本最大級のPHP開発合宿イベントです。80名近い参加者が集まり、とてもホットなイベントとなりました。&lt;/p&gt;
&lt;p&gt;どんなことが行われていたかは、私より筆のうまい他の方のレポート記事にお任せするとして、私がハッカソンで行った内容について書きます。&lt;/p&gt;
&lt;p&gt;今回私は、他の人がまず作らないだろうなーと言うことで、先日公開された&lt;a href=&#34;http://developer.mixi.co.jp/connect/mixi_graph_api&#34;&gt;mixi Graph API&lt;/a&gt;のCakePHP向けプラグインを作ってみることにしました。
以前に、&lt;a href=&#34;http://php-tips.com/php/cakephp-php/2010/07/cakephp-twitterkit-slid&#34;&gt;TwitterKitというTwitterを利用するプラグインパッケージを作成していた&lt;/a&gt;ので、ほぼ同じような機能を実装することに。&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;APIを呼び出すDataSouceを提供する。
  （DataSouceにするのは、database.phpでアプリケーション固有の設定が出来るため&lt;/li&gt;
	&lt;li&gt;OAuthで認証を行い、AccessTokenをデータベースへ保存するOauthControllerを提供する&lt;/li&gt;
	&lt;li&gt;他、付随するModel、Component、Helperを提供する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以上の機能をもつプラグインを作ってサンプルアプリケーションを行うことを目標に設定しました。&lt;/p&gt;
&lt;p&gt;会場到着後、午前中は基調講演などのセッションを聴いて、開発を開始したのは午後からでした。気になるセッションを聴きにいきながら、ちまちま環境構築してコーディング開始です。&lt;/p&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>MacPorts 1.9.1でPHP 5.2.14のCLIのビルドに失敗する場合の対処法</title>
      <link>https://php-tips.com/2010/09/23/macports-1-9-1-php52-cli-build-failure/</link>
      <pubDate>Thu, 23 Sep 2010 01:32:35 +0900</pubDate>
      <guid>https://php-tips.com/2010/09/23/macports-1-9-1-php52-cli-build-failure/</guid>
      <description>&lt;p&gt;先日MacPortsで管理しているPHPのバージョンアップを行ったのですが以下のような現象に悩まされました。&lt;/p&gt;
&lt;pre class=&#34;brush: bash&#34;&gt;
$ php -r &#34;print_r(&#39;hoge&#39;);&#34;

Fatal error: Call to undefined function print_r() in Command line code on line 1
&lt;/pre&gt;
&lt;p&gt;エラーが発生するのはコマンドラインからの利用のみで、なぜかWeb経由では問題なく動きます。&lt;/p&gt;
&lt;p&gt;調べて見ると全ての関数が使えない。。&lt;/p&gt;
&lt;p&gt;ビルド時のconfigureで以下のエラーが表示されCLI版のバイナリ作成に失敗していました。&lt;/p&gt;
&lt;pre class=&#34;brush: bash&#34;&gt;
Generating files
updating cache ./config.cache
creating ./config.status
creating php5.spec
creating main/build-defs.h
creating scripts/phpize
creating scripts/man1/phpize.1
creating scripts/php-config
creating scripts/man1/php-config.1
creating sapi/cli/php.1
creating main/php_config.h
creating main/internal_functions.c
gawk(96091,0x7fff70a28c20) malloc: *** error for object 0x100214910: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
creating main/internal_functions_cli.c
gawk(96132,0x7fff70a28c20) malloc: *** error for object 0x100215aa0: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
&lt;/pre&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>tw2mv &amp;#8211; twitterとmixiボイスを連携するスクリプト version 2.1.4</title>
      <link>https://php-tips.com/2010/08/23/tw2mv/</link>
      <pubDate>Mon, 23 Aug 2010 20:32:15 +0900</pubDate>
      <guid>https://php-tips.com/2010/08/23/tw2mv/</guid>
      <description>&lt;p&gt;しばらく更新が滞っていましたがtw2mvの修正を行い、mixi公式のTwitter連携で投稿されたつぶやきを再転送しない修正を加えたver2.1.4をリリースしています。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP 1.3のビューでヘルパーのコードを補完する for Eclipce PDT</title>
      <link>https://php-tips.com/2010/08/18/code-completion-in-cakephp1_3-views-for-eclipse-pdt/</link>
      <pubDate>Wed, 18 Aug 2010 10:25:53 +0900</pubDate>
      <guid>https://php-tips.com/2010/08/18/code-completion-in-cakephp1_3-views-for-eclipse-pdt/</guid>
      <description>&lt;p&gt;CakePHP 1.3になってからビューでのヘルパーの推奨される呼び出し方法が変わりました。&lt;/p&gt;
&lt;p&gt;1.3以前&lt;/p&gt;
&lt;pre class=&#34;brush: php&#34;&gt;
$html-&gt;link();
$form-&gt;input();
&lt;/pre&gt;
&lt;p&gt;1.3以降&lt;/p&gt;
&lt;pre class=&#34;brush: php&#34;&gt;
$this-&gt;Html-&gt;link();
$this-&gt;Form-&gt;input();
&lt;/pre&gt;
&lt;p&gt;コントローラとモデル・コンポーネントの呼び出し方法同様に、$this(Viewオブジェクト)の要素としてヘルパーを呼び出すようになります。
なお、以前の呼び出し方法も使えます。&lt;/p&gt;
&lt;p&gt;今回はこの新しい書き方をEclipse PDT上で補完する方法を紹介します。&lt;/p&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHPのAclBehaviorをさらに手軽に AclPlusBehavior for CakePHP 1.3</title>
      <link>https://php-tips.com/2010/08/11/cakephp-acl_plus_behavior-for-cakephp-1-3/</link>
      <pubDate>Wed, 11 Aug 2010 22:24:37 +0900</pubDate>
      <guid>https://php-tips.com/2010/08/11/cakephp-acl_plus_behavior-for-cakephp-1-3/</guid>
      <description>&lt;p&gt;CakePHPでは、モデルオブジェクトでアクセスコントロールを行う場合にAclビヘイビアを使用します。
ただし、標準のAclビヘイビアは若干クセがあり、設定しづらいものとなっています。&lt;/p&gt;
&lt;p&gt;今回はAclBehaviorを拡張し、ACLの機能をモデルへ手早く組み込むことが出来るようにする、AclPlusBehaviorを紹介します。&lt;/p&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>jqPlotがIE8で動作しない場合の対処方法</title>
      <link>https://php-tips.com/2010/08/06/jqplot_errors_on_ie8/</link>
      <pubDate>Fri, 06 Aug 2010 23:21:33 +0900</pubDate>
      <guid>https://php-tips.com/2010/08/06/jqplot_errors_on_ie8/</guid>
      <description>&lt;p&gt;暑い日が続きますね。昼間に外に出るとカリカリベーコンになってしまうのかと思うほどです。というわけで、こんにちは nojimage です。&lt;/p&gt;
&lt;p&gt;jQuery向けのグラフ描画プラグイン&amp;quot;&lt;a href=&#34;http://www.jqplot.com/&#34;&gt;jqPlot&lt;/a&gt;&amp;ldquo;を最近利用してみました。
手軽にグラフ描画ができるのでとても重宝します。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP 1.3.3でSession.timeoutの解釈がさらにややこしくなっている件</title>
      <link>https://php-tips.com/2010/07/20/cakephp-1-3-3_session-timeout/</link>
      <pubDate>Tue, 20 Jul 2010 21:10:53 +0900</pubDate>
      <guid>https://php-tips.com/2010/07/20/cakephp-1-3-3_session-timeout/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://bakery.cakephp.org/articles/view/cakephp-1-3-3-rainbow-icing-edition-released&#34;&gt;CakePHP 1.3.3が先日リリースされました。&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;早速変更点を確認していたのですが、&lt;a href=&#34;http://github.com/cakephp/cakephp/compare/1.3.2...1.3.3#diff-0&#34;&gt;app/config/core.phpのSession.timeoutのコメント内容が変更&lt;/a&gt;されており、おやっと思いました。&lt;/p&gt;
&lt;pre class=&#34;brush: diff&#34;&gt;
--- a/app/config/core.php
+++ b/app/config/core.php
@@ -167,7 +167,7 @@
        Configure::write(&#39;Session.cookie&#39;, &#39;CAKEPHP&#39;);
 
 /**
- * Session time out time (in seconds).
+ * Session time out time (in minutes).
  * Actual value depends on &#39;Security.level&#39; setting.
  */
        Configure::write(&#39;Session.timeout&#39;, &#39;120&#39;);
&lt;/pre&gt;
&lt;p&gt;Session.timeoutの指定値が分として解釈されるようになった？&lt;/p&gt;</description>
    </item>
    <item>
      <title>jQueryのplugin作成時にajaxメソッドのcallbackで呼び出し元のエレメントを呼び出す方法</title>
      <link>https://php-tips.com/2010/07/17/jquery-plugin-ajax-callback-element/</link>
      <pubDate>Sat, 17 Jul 2010 00:15:23 +0900</pubDate>
      <guid>https://php-tips.com/2010/07/17/jquery-plugin-ajax-callback-element/</guid>
      <description>&lt;p&gt;皆さんプラグイン作ってますかー。わたしは作ってます、CakePHPの方ですが。
というわけで、こんにちは。今回もタイトルが長いですね。&lt;/p&gt;
&lt;p&gt;とある日、jQueryでプラグインを書いていたときのことです。&lt;/p&gt;</description>
    </item>
    <item>
      <title>&amp;#8220;TwitterKitではじめる OAuthスピードクッキング&amp;#8221; &amp;#8211; 第2回CakePHP勉強会@福岡 LT発表資料</title>
      <link>https://php-tips.com/2010/07/05/cakephp-twitterkit-slid/</link>
      <pubDate>Mon, 05 Jul 2010 20:32:16 +0900</pubDate>
      <guid>https://php-tips.com/2010/07/05/cakephp-twitterkit-slid/</guid>
      <description>&lt;p&gt;LTで発表がグタグタになってしまい、凹みまくりのnojimageです。こんにちは。&lt;/p&gt;
&lt;p&gt;グダグダの敗因はアレですね。LTのクセに詰め込みすぎた。
もうちょっとシンプルに行けば良かったです。はい。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP ACOの生成を自動化する関数の修正</title>
      <link>https://php-tips.com/2010/06/11/cakephp-automated-tool-for-creating-acos-fix/</link>
      <pubDate>Fri, 11 Jun 2010 11:23:00 +0900</pubDate>
      <guid>https://php-tips.com/2010/06/11/cakephp-automated-tool-for-creating-acos-fix/</guid>
      <description>&lt;p&gt;最近やっとまともにACLをやり始めたnojimageです。こんにちは。&lt;/p&gt;
&lt;p&gt;さて、ACLのACOを生成するのに便利なツールがCookbookに紹介されています。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://book.cakephp.org/ja/view/647/An-Automated-tool-for-creating-ACOs&#34;&gt;10.2.6 ACO の作成を自動化するツール&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;このツールを使うと、開発中のアプリケーションのControllerクラスから、各actionを抽出し、ACOテーブルに追加していってくれるとても便利な関数なのですが、ちょっとばかし問題があるためそのままでは使えません。&lt;/p&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>SQLダンプを生成するCakePHPプラグイン &amp;#8220;Sql Dumper&amp;#8221;</title>
      <link>https://php-tips.com/2010/05/27/cakephp-sql-dumper/</link>
      <pubDate>Thu, 27 May 2010 22:37:47 +0900</pubDate>
      <guid>https://php-tips.com/2010/05/27/cakephp-sql-dumper/</guid>
      <description>&lt;p&gt;とあるプロジェクトで、データベースのバックアップ用にSQLを吐き出す必要があったので作ってみました。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://github.com/nojimage/sql_dumper&#34;&gt;Sql Dumper Plugin for CakePHP 1.2+(github)&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;プラグインといっても1ファイル1クラスのみ&#34;&gt;プラグインといっても、1ファイル1クラスのみ。。&lt;/h1&gt;
&lt;h2&gt;できること&lt;/h2&gt;
&lt;ul&gt;
    &lt;li&gt;DataSourceからテーブルを取得して、Create、Drop文を生成&lt;/li&gt;
    &lt;li&gt;テーブルに登録されているデータをInsert文として生成&lt;/li&gt;
    &lt;li&gt;生成したSQLを指定したファイルへ吐き出し&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;mysqldumpやpg_dumpの代用になりますが、SQLの生成にはCakeSchemaクラスを利用しているので、Schemaで作成したテーブル以外は正しくダンプできるとは限りません。&lt;/p&gt;
&lt;h1 id=&#34;定義されていない型とかトリガーとか&#34;&gt;定義されていない型とか、トリガーとか。&lt;/h1&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>tw2mvをTwitterのxAuthに対応させたメモ</title>
      <link>https://php-tips.com/2010/04/30/tw2mv_twitter_xauth_memo/</link>
      <pubDate>Fri, 30 Apr 2010 20:39:01 +0900</pubDate>
      <guid>https://php-tips.com/2010/04/30/tw2mv_twitter_xauth_memo/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.itmedia.co.jp/news/articles/1004/27/news063.html&#34;&gt;TwitterのBasic認証が6月末に終了&lt;/a&gt;するということで、やっとこさmixiボイスへの転送スクリプト&amp;quot;tw2mv&amp;quot;をxAuthに対応させてみました。&lt;/p&gt;
&lt;p&gt;&lt;small&gt;xAuthはOAuthの簡易版ですので、可能な限りOAuthで実装するのが筋だと思います。
ただ、本スクリプトはコマンドラインスクリプトのため、OAuthでWebの画面を開いて認証させるのは余計な手間がかかると判断しxAuthを採用しています。&lt;/small&gt;&lt;/p&gt;
&lt;h3&gt;1. Twitterへのアプリケーション登録&lt;/h3&gt;
&lt;p&gt;通常のOAuth利用と同じく、ConsumerKeyが必要なのでアプリケーションの申請を行います。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://twitter.com/apps/new&#34;&gt;&lt;a href=&#34;https://twitter.com/apps/new&#34;&gt;https://twitter.com/apps/new&lt;/a&gt;&lt;/a&gt;
クライアントアプリケーションなので「あなたの招待状」の部分を「送信」で登録。（日本語訳がおかしいですね。。）&lt;/p&gt;
&lt;h3&gt;2. xAuthの利用申請メール&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;http://dev.twitter.com/pages/xauth&#34;&gt;Using xAuth | dev.twitter.com&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
xAuth access is restricted to approved applications. If your application is a desktop or mobile application and the standard web OAuth flow or PIN-code out-of-band flow is not right for you, send a detailed message to api@twitter.com to request xAuth privileges. Include the name of your application, the consumer key, the application ID (if available), and a summary of how xAuth is best-suited for your application.
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;mailto:api@twitter.com&#34;&gt;api@twitter.com&lt;/a&gt;宛にメールで利用の申請をしてねとのことなので、メール（英語）でお伺いを立てました。&lt;/p&gt;
&lt;pre&gt;
To: api@twitter.com
Subject: xauth request

Hello.

I&#39;m a developer of &#34;tw2mv&#34;.

&#34;tw2mv&#34; is a php script, for sync messages between twitter and &#34;mixi voice&#34;.
(&#34;mixi voice&#34; is twitter-like service, in japanese SNS &#34;mixi&#34;.

Please apply this app to use xAuth.

Application Name: tw2mv
App Source Code : http://github.com/nojimage/twitter2mixivoice
My account      : @nojimage

Thank you.
&lt;/pre&gt;
&lt;p&gt;タイミングもあったと思いますが、申請から8hで承認がおりました。thanks!
(よく見たら、ConsumerKeyもメールに書いておいてねとある。。&lt;/p&gt;
&lt;h3&gt;3. OAuthライブラリ&lt;/h3&gt;
&lt;p&gt;pearのHTTP_OAuthを利用しました。&lt;/p&gt;
&lt;pre class=&#34;brush: bash&#34;&gt;
pear install HTTP_OAuth-0.1.10
&lt;/pre&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>cakephpで個別にpearライブラリをインストールする方法</title>
      <link>https://php-tips.com/2010/03/11/cakephp%E3%81%A7%E5%80%8B%E5%88%A5%E3%81%ABpear%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/</link>
      <pubDate>Thu, 11 Mar 2010 21:59:21 +0900</pubDate>
      <guid>https://php-tips.com/2010/03/11/cakephp%E3%81%A7%E5%80%8B%E5%88%A5%E3%81%ABpear%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/</guid>
      <description>&lt;p&gt;ちょっとバッドノウハウな気もしますが、cakephpでpearライブラリをインストール／利用する方法について。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;0.  ポリシー&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;cakeのvendors配下にpearを個別インストールして、そこでライブラリの追加を行えるようにします。&lt;/p&gt;
&lt;h1 id=&#34;windows環境の場合は適当に読み替えてください&#34;&gt;windows環境の場合は適当に読み替えてください。&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;1. pearをvendorsへ個別インストール&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;既にpearが、システムへインストールされていることが前提です。
インストールされていない場合は、&lt;/p&gt;
&lt;pre class=&#34;brush: bash&#34;&gt;
lynx -source  http://pear.php.net/go-pear | php
&lt;/pre&gt;
&lt;pre class=&#34;brush: bash&#34;&gt;
curl http://pear.php.net/go-pear | sudo php
&lt;/pre&gt;
&lt;p&gt;等で、インストールしてください。
(参考: &lt;a href=&#34;http://pear.php.net/manual/ja/installation.php&#34;&gt;pear.php.net Manual :: インストール&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;vendors ディレクトリに移動してpearのローカル設定ファイルを生成します。&lt;/p&gt;
&lt;pre class=&#34;brush: bash&#34;&gt;
cd vendors
pear config-create `pwd` pear.conf
&lt;/pre&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>wordpress 2.9.1 から 2.9.2 の変更ファイル一覧</title>
      <link>https://php-tips.com/2010/02/24/wordpress-2-9-1-%E3%81%8B%E3%82%89-2-9-2-%E3%81%AE%E5%A4%89%E6%9B%B4%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E4%B8%80%E8%A6%A7/</link>
      <pubDate>Wed, 24 Feb 2010 01:56:16 +0900</pubDate>
      <guid>https://php-tips.com/2010/02/24/wordpress-2-9-1-%E3%81%8B%E3%82%89-2-9-2-%E3%81%AE%E5%A4%89%E6%9B%B4%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E4%B8%80%E8%A6%A7/</guid>
      <description>&lt;p&gt;時間がないときのお茶濁エントリーです。&lt;/p&gt;
&lt;p&gt;前回から引き続きやってみました。（&lt;a href=&#34;http://php-tips.com/%E3%83%A1%E3%83%A2/2010/01/wordpress-2-9-%E3%81%8B%E3%82%89-2-9-1-%E3%81%AE%E5%A4%89%E6%9B%B4%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E4%B8%80%E8%A6%A7&#34;&gt;前回の記事&lt;/a&gt;）&lt;/p&gt;
&lt;p&gt;wordpress 2.9.1 から 2.9.2 で修正されたファイルの一覧（日本語版）です。&lt;/p&gt;
&lt;p&gt;今回は少なめですね。&lt;/p&gt;</description>
    </item>
    <item>
      <title>EmailComponent 日本語拡張</title>
      <link>https://php-tips.com/2010/02/06/emailcomponent-%E6%97%A5%E6%9C%AC%E8%AA%9E%E6%8B%A1%E5%BC%B5/</link>
      <pubDate>Sat, 06 Feb 2010 02:52:25 +0900</pubDate>
      <guid>https://php-tips.com/2010/02/06/emailcomponent-%E6%97%A5%E6%9C%AC%E8%AA%9E%E6%8B%A1%E5%BC%B5/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://d.hatena.ne.jp/cakephper/20100205/1265350597&#34;&gt;第5回CakePHP IRC集会&lt;/a&gt;の時にちらっと発言したネタです。&lt;/p&gt;
&lt;p&gt;CakePHPにはメール送信用のコンポーネントとして、&lt;a href=&#34;http://book.cakephp.org/ja/view/176/Email&#34;&gt;EmailComponent&lt;/a&gt;が存在しますが日本語の取り扱いの不備などから、あまり利用されていません。&lt;/p&gt;
&lt;p&gt;メール送信のコンポーネントとしては、&lt;a href=&#34;http://hal456.net/qdmail/top&#34;&gt;Qdmail&lt;/a&gt;という素晴らしいライブラリがあり、高度なメール配信も出来るのでそちらを利用されることをお勧めしますが、EmailComponentの拡張を作ってしまったので説明します。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AppEmailComponent&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;オリジナルからの変更点&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;日本語の折り返し処理の修正（EmailConponent::__wrap()のオーバライド）&lt;/li&gt;
	&lt;li&gt;設定ファイルからの読み込み機能、メール設定の一元管理（load()メソッドの追加）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;ソースコード&lt;/strong&gt;
&lt;a href=&#34;http://bit.ly/9UxtK7&#34;&gt;&lt;a href=&#34;http://gist.github.com/287836&#34;&gt;http://gist.github.com/287836&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>マークアップ補助用 jquery プラグイン2種</title>
      <link>https://php-tips.com/2010/02/02/%E3%83%9E%E3%83%BC%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E8%A3%9C%E5%8A%A9%E7%94%A8-jquery-%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B32%E7%A8%AE/</link>
      <pubDate>Tue, 02 Feb 2010 22:51:37 +0900</pubDate>
      <guid>https://php-tips.com/2010/02/02/%E3%83%9E%E3%83%BC%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E8%A3%9C%E5%8A%A9%E7%94%A8-jquery-%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B32%E7%A8%AE/</guid>
      <description>&lt;ul&gt;
	&lt;li&gt; &lt;a href=&#34;http://bit.ly/a5Wp8P&#34;&gt;jquery.markup_first_last.js [Gist]&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&#34;http://bit.ly/9fR9YP&#34;&gt;jquery.firefox_table_fix.js [Gist]&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;最初と最後の子要素にスタイルクラスを与える jquery.markup_first_last.js&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;指定した要素の最初の子要素に、class=&amp;ldquo;first&amp;quot;を、最後の子要素に class=&amp;ldquo;last&amp;quot;を付与するプラグインです。&lt;/p&gt;</description>
    </item>
    <item>
      <title>FileMakerとCakePHP でつくる簡単Webアプリケーション</title>
      <link>https://php-tips.com/2010/01/27/filemaker-cakephp-webapp/</link>
      <pubDate>Wed, 27 Jan 2010 21:34:21 +0900</pubDate>
      <guid>https://php-tips.com/2010/01/27/filemaker-cakephp-webapp/</guid>
      <description>&lt;p&gt;FileMakerとCakePHP でつくる簡単Webアプリケーション&lt;/p&gt;
&lt;p&gt;先週になりますが、&lt;a href=&#34;http://dai1.com/applebu/&#34;&gt;AppleBU&lt;/a&gt;というイベントにて「FileMakerとCakePHP でつくる簡単Webアプリケーション」と題し、プレゼンを行ってきました。&lt;/p&gt;
&lt;div style=&#34;width:425px;text-align:left&#34; id=&#34;__ss_2960272&#34;&gt;&lt;a style=&#34;font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;&#34; href=&#34;http://www.slideshare.net/nojimage/20100120-applebu-file-makercake-phpweb&#34; title=&#34;20100120 AppleBU - FileMakerとCakePHPでつくる簡単Webアプリケーション&#34;&gt;20100120 AppleBU - FileMakerとCakePHPでつくる簡単Webアプリケーション&lt;/a&gt;&lt;object style=&#34;margin:0px&#34; width=&#34;425&#34; height=&#34;355&#34;&gt;&lt;param name=&#34;movie&#34; value=&#34;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=20100120-filemakercakephpweb-web-100120193657-phpapp01&amp;stripped_title=20100120-applebu-file-makercake-phpweb&#34; /&gt;&lt;param name=&#34;allowFullScreen&#34; value=&#34;true&#34;/&gt;&lt;param name=&#34;allowScriptAccess&#34; value=&#34;always&#34;/&gt;&lt;embed src=&#34;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=20100120-filemakercakephpweb-web-100120193657-phpapp01&amp;stripped_title=20100120-applebu-file-makercake-phpweb&#34; type=&#34;application/x-shockwave-flash&#34; allowscriptaccess=&#34;always&#34; allowfullscreen=&#34;true&#34; width=&#34;425&#34; height=&#34;355&#34;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style=&#34;font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;&#34;&gt;View more &lt;a style=&#34;text-decoration:underline;&#34; href=&#34;http://www.slideshare.net/&#34;&gt;presentations&lt;/a&gt; from &lt;a style=&#34;text-decoration:underline;&#34; href=&#34;http://www.slideshare.net/nojimage&#34;&gt;Takashi Nojima&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;FMCakeMixというデータソースを利用すると、FileMakerをCakePHPで扱えるということで、実際に利用してみた内容をまとめたものです。&lt;/p&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>wordpress 2.9 から 2.9.1 の変更ファイル一覧</title>
      <link>https://php-tips.com/2010/01/08/wordpress-2-9-%E3%81%8B%E3%82%89-2-9-1-%E3%81%AE%E5%A4%89%E6%9B%B4%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E4%B8%80%E8%A6%A7/</link>
      <pubDate>Fri, 08 Jan 2010 19:37:06 +0900</pubDate>
      <guid>https://php-tips.com/2010/01/08/wordpress-2-9-%E3%81%8B%E3%82%89-2-9-1-%E3%81%AE%E5%A4%89%E6%9B%B4%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E4%B8%80%E8%A6%A7/</guid>
      <description>&lt;p&gt;遅ればせながら、明けましておめでとうございます。&lt;/p&gt;
&lt;p&gt;前回から引き続きやってみました。（&lt;a href=&#34;http://php-tips.com/%E3%83%A1%E3%83%A2/2009/12/wordpress-2-8-6-%E3%81%8B%E3%82%89-2-9-%E3%81%AE%E5%A4%89%E6%9B%B4%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E4%B8%80%E8%A6%A7&#34;&gt;前回の記事&lt;/a&gt;）&lt;/p&gt;
&lt;p&gt;wordpress 2.9 から 2.9.1 で修正されたファイルの一覧（日本語版）です。&lt;/p&gt;</description>
    </item>
    <item>
      <title>wordpress 2.8.6 から 2.9 の変更ファイル一覧</title>
      <link>https://php-tips.com/2009/12/22/wordpress-2-8-6-%E3%81%8B%E3%82%89-2-9-%E3%81%AE%E5%A4%89%E6%9B%B4%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E4%B8%80%E8%A6%A7/</link>
      <pubDate>Tue, 22 Dec 2009 13:21:33 +0900</pubDate>
      <guid>https://php-tips.com/2009/12/22/wordpress-2-8-6-%E3%81%8B%E3%82%89-2-9-%E3%81%AE%E5%A4%89%E6%9B%B4%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E4%B8%80%E8%A6%A7/</guid>
      <description>&lt;p&gt;また、何となくですがやってみました。（&lt;a href=&#34;http://php-tips.com/%E3%83%A1%E3%83%A2/2009/11/wordpress-2-8-5-%E3%81%8B%E3%82%89-2-8-6-%E3%81%AE%E5%A4%89%E6%9B%B4%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E4%B8%80%E8%A6%A7&#34;&gt;前回の記事&lt;/a&gt;）&lt;/p&gt;
&lt;p&gt;wordpress 2.8.6から 2.9 で修正されたファイルの一覧（日本語版）です。&lt;/p&gt;</description>
    </item>
    <item>
      <title>リスト、表組みなどのマークアップをサポートするjQueryプラグイン jquery.alternation.js</title>
      <link>https://php-tips.com/2009/12/15/jquery-alternation-js/</link>
      <pubDate>Tue, 15 Dec 2009 23:01:12 +0900</pubDate>
      <guid>https://php-tips.com/2009/12/15/jquery-alternation-js/</guid>
      <description>&lt;p&gt;今回はリストや表組みで交互に色を変えるなど、スタイルを適用するときに便利なjQueryプラグインをご紹介します。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://bit.ly/4tAhBL&#34;&gt;jquery.alternation.js [ダウンロード]&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;HTMLで以下のようなリストがあったとき、リストを見やすくするため交互に背景色をつける場合は、背景色をつける要素になんらかのスタイルクラスを与え、そのスタイルクラスに対して背景色を指定する方法があります。&lt;/p&gt;
&lt;pre class=&#34;brush: html&#34;&gt;
&amp;lt;ul&amp;gt;
		&amp;lt;li&amp;gt;リンゴ&amp;lt;/li&amp;gt;
		&amp;lt;li&amp;gt;バナナ&amp;lt;/li&amp;gt;
		&amp;lt;li&amp;gt;ミカン&amp;lt;/li&amp;gt;
		&amp;lt;li&amp;gt;イチゴ&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&lt;/pre&gt;
&lt;p&gt;背景色をつける要素にalterクラスを指定&lt;/p&gt;
&lt;pre class=&#34;brush: html&#34;&gt;
&amp;lt;ul&amp;gt;
		&amp;lt;li&amp;gt;リンゴ&amp;lt;/li&amp;gt;
		&amp;lt;li class=&#34;alter&#34;&amp;gt;バナナ&amp;lt;/li&amp;gt;
		&amp;lt;li&amp;gt;ミカン&amp;lt;/li&amp;gt;
		&amp;lt;li class=&#34;alter&#34;&amp;gt;イチゴ&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&lt;/pre&gt;
&lt;p&gt;CSSは下記のように指定します。&lt;/p&gt;
&lt;pre class=&#34;brush: css&#34;&gt;
ul li {
		/* 通常のリストの指定 */
}
ul li.alter {
		/* 背景色を薄い灰色にする */
		background-color: #e6e6e6;
}
&lt;/pre&gt;
&lt;p&gt;しかし、この方法を手動で行うと項目の数が増えた場合、HTMLのマークアップが煩雑になります。また、項目の追加や削除があった場合の作業も、考えただけでイヤになります。&lt;/p&gt;
&lt;p&gt;そこで、本jQueryプラグインの出番です。&lt;/p&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>文字の均等割り付けを行うjQueryプラグイン jQuery.justify.js</title>
      <link>https://php-tips.com/2009/12/05/%E6%96%87%E5%AD%97%E3%81%AE%E5%9D%87%E7%AD%89%E5%89%B2%E3%82%8A%E4%BB%98%E3%81%91%E3%82%92%E8%A1%8C%E3%81%86jquery%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3-jquery-justify-js/</link>
      <pubDate>Sat, 05 Dec 2009 13:09:06 +0900</pubDate>
      <guid>https://php-tips.com/2009/12/05/%E6%96%87%E5%AD%97%E3%81%AE%E5%9D%87%E7%AD%89%E5%89%B2%E3%82%8A%E4%BB%98%E3%81%91%E3%82%92%E8%A1%8C%E3%81%86jquery%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3-jquery-justify-js/</guid>
      <description>&lt;p&gt;日本人は表組が大好きです。
クリスマスのチキンより表組みが好きなんです。（嘘&lt;/p&gt;
&lt;p&gt;そんな表組の中で時折見かけるのが下表のようなデザイン。&lt;/p&gt;
&lt;p&gt;[caption id=&amp;ldquo;attachment_285&amp;rdquo; align=&amp;ldquo;alignnone&amp;rdquo; width=&amp;ldquo;303&amp;rdquo; caption=&amp;ldquo;表1&amp;rdquo;]&lt;img src=&#34;http://php-tips.com/wp-content/uploads/2009/12/427feeba2c3a5b495c286f27ae1fdcc3.png&#34; alt=&#34;表1&#34; title=&#34;justify-sample&#34; width=&#34;303&#34; height=&#34;168&#34; class=&#34;size-full wp-image-285&#34; /&gt;[/caption]&lt;/p&gt;
&lt;p&gt;見出し部分を均等割り付けです。
均等割り付けなんかイヤだ！といってもやらなきゃいけないときもあるわけで。&lt;/p&gt;
&lt;p&gt;普通、こういう表現をする場合スペースなんかで間隔を揃えてしまいがちですが、アクセシビリティを考えるとあんまりよろしくありません。&lt;/p&gt;
&lt;p&gt;そんなとき、CSSプロパティのletter-spacingを利用して文字間隔を揃えます。
しかし、手動でやるのは文字数やフォントサイズが変わるたびに値を調整しないといけないため、あまり効率的ではありません。&lt;/p&gt;
&lt;p&gt;そんなときに使えるのが本jQueryプラグインになります。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://bit.ly/4CU0Fs&#34; title=&#34;http://gist.github.com/249164&#34;&gt;jQuery.justify.js  [ダウンロード]&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;※IE6, 7, 8, firefox 3.5, Safari 4, Google Chorme 4での動作を確認しています。&lt;/p&gt;
&lt;p&gt;[ad]&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP 1.2のAuthコンポーネントを利用してユーザグループ毎にアクセスコントロールをする方法</title>
      <link>https://php-tips.com/2009/11/27/cakephp-1-2%E3%81%AEauth%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%A6%E3%83%A6%E3%83%BC%E3%82%B6%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97/</link>
      <pubDate>Fri, 27 Nov 2009 22:31:00 +0900</pubDate>
      <guid>https://php-tips.com/2009/11/27/cakephp-1-2%E3%81%AEauth%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%A6%E3%83%A6%E3%83%BC%E3%82%B6%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97/</guid>
      <description>&lt;p&gt;Authコンポーネントを利用して、ユーザグループごとに利用できるアクションを割り当てる方法をご紹介します。
※簡易ACLって感じで。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;できること&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;ユーザグループごとに各アクションの利用可否を設定&lt;/li&gt;
	&lt;li&gt;アクションの認可情報は、コントローラ内に記述&lt;/li&gt;
	&lt;li&gt;認証ユーザごとにログイン後の遷移先を変更（おまけ２）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;（この方法、どこかの記事を参考にさせていただいたのですが参考元がわからなくなりました。。）&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://gist.github.com/243983&#34;&gt;ここで紹介したソースをまとめたものはこちら&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>メモ: U&#43;2028,U&#43;2029が含まれるJSONデータをeval関数を使ってデコードするとエラーになる</title>
      <link>https://php-tips.com/2009/11/23/%E3%83%A1%E3%83%A2-u2029%E3%81%8C%E5%90%AB%E3%81%BE%E3%82%8C%E3%82%8Bjson%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92eval%E9%96%A2%E6%95%B0%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%83%87%E3%82%B3%E3%83%BC/</link>
      <pubDate>Mon, 23 Nov 2009 23:39:07 +0900</pubDate>
      <guid>https://php-tips.com/2009/11/23/%E3%83%A1%E3%83%A2-u2029%E3%81%8C%E5%90%AB%E3%81%BE%E3%82%8C%E3%82%8Bjson%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92eval%E9%96%A2%E6%95%B0%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%83%87%E3%82%B3%E3%83%BC/</guid>
      <description>&lt;p&gt;※firefoxとwebkitで確認してます。&lt;/p&gt;
&lt;p&gt;JSONを使ってデータをやり取りするととっても便利なのですが、最近それでハマったのでメモ。&lt;/p&gt;
&lt;p&gt;UNICODEには、改行文字がいろいろと定義されているみたいです。
&lt;a href=&#34;http://www.unicode.org/reports/tr13/tr13-9.html&#34;&gt;UAX #13: Unicode Newline Guidelines&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>wordpress 2.8.5 から 2.8.6 の変更ファイル一覧</title>
      <link>https://php-tips.com/2009/11/20/wordpress-2-8-5-%E3%81%8B%E3%82%89-2-8-6-%E3%81%AE%E5%A4%89%E6%9B%B4%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E4%B8%80%E8%A6%A7/</link>
      <pubDate>Fri, 20 Nov 2009 13:30:35 +0900</pubDate>
      <guid>https://php-tips.com/2009/11/20/wordpress-2-8-5-%E3%81%8B%E3%82%89-2-8-6-%E3%81%AE%E5%A4%89%E6%9B%B4%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E4%B8%80%E8%A6%A7/</guid>
      <description>&lt;p&gt;たまには更新しないとな、ということで子ネタ。&lt;/p&gt;
&lt;p&gt;wordpress 2.8.5から 2.8.6 で修正されたファイルの一覧（日本語版）です。&lt;/p&gt;
&lt;pre&gt;
wordpress/readme.html
wordpress/wp-admin/press-this.php
wordpress/wp-content/languages/continents-cities-ja.po
wordpress/wp-content/languages/ja.mo
wordpress/wp-content/languages/ja.po
wordpress/wp-content/plugins/akismet/akismet.php
wordpress/wp-content/plugins/akismet/readme.txt
wordpress/wp-content/themes/default/style.css
wordpress/wp-includes/formatting.php
wordpress/wp-includes/functions.php
wordpress/wp-includes/js/swfupload/plugins/swfupload.speed.js
wordpress/wp-includes/version.php
&lt;/pre&gt;
&lt;p&gt;これを、tarとかで固めてアップロードすれば、全部アップロードするより早いのかなと。&lt;/p&gt;</description>
    </item>
    <item>
      <title>HTTP_OAuthを利用してTwitterのOAuth認証を行う</title>
      <link>https://php-tips.com/2009/11/09/http_oauth%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%A6twitter%E3%81%AEoauth%E8%AA%8D%E8%A8%BC%E3%82%92%E8%A1%8C%E3%81%86/</link>
      <pubDate>Mon, 09 Nov 2009 13:40:29 +0900</pubDate>
      <guid>https://php-tips.com/2009/11/09/http_oauth%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%A6twitter%E3%81%AEoauth%E8%AA%8D%E8%A8%BC%E3%82%92%E8%A1%8C%E3%81%86/</guid>
      <description>&lt;p&gt;OAuth認証を行うためのpearライブラリとして&lt;a href=&#34;http://pear.php.net/package/HTTP_OAuth/&#34;&gt;HTTP_OAuth&lt;/a&gt;があります。
今回は、そのライブラリを利用してtwitterの認証を行う方法をご紹介します。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakeMatsuri Tokyo 2009に行ってきました</title>
      <link>https://php-tips.com/2009/11/01/cakematsuri-tokyo-2009/</link>
      <pubDate>Sun, 01 Nov 2009 02:30:11 +0900</pubDate>
      <guid>https://php-tips.com/2009/11/01/cakematsuri-tokyo-2009/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://matsuri.cakephp.jp/&#34;&gt;CakeMatsuri Tokyo 2009&lt;/a&gt;  のカンファレンスディに参加してきました。&lt;/p&gt;
&lt;p&gt;気になった内容をいくつかご紹介。&lt;/p&gt;</description>
    </item>
    <item>
      <title>pear Mail_mimeDecode::decode()の戻り値を入力補完できるようにする</title>
      <link>https://php-tips.com/2009/10/25/pear-mail_mimedecodedecode%E3%81%AE%E6%88%BB%E3%82%8A%E5%80%A4%E3%82%92%E5%85%A5%E5%8A%9B%E8%A3%9C%E5%AE%8C%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B/</link>
      <pubDate>Sun, 25 Oct 2009 01:14:04 +0900</pubDate>
      <guid>https://php-tips.com/2009/10/25/pear-mail_mimedecodedecode%E3%81%AE%E6%88%BB%E3%82%8A%E5%80%A4%E3%82%92%E5%85%A5%E5%8A%9B%E8%A3%9C%E5%AE%8C%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B/</guid>
      <description>&lt;p&gt;久しぶりにMail_mimeDecodeを使ってみたのですが、decodeメソッドの返り値がstdClassだったので、Eclipseなどで返り値のクラスを定義して入力補完ができるようにしてみました。&lt;/p&gt;</description>
    </item>
    <item>
      <title>twitter2mixivoice 2.1.0</title>
      <link>https://php-tips.com/2009/10/13/twitter2mixivoice-2-0-beta2/</link>
      <pubDate>Tue, 13 Oct 2009 21:25:35 +0900</pubDate>
      <guid>https://php-tips.com/2009/10/13/twitter2mixivoice-2-0-beta2/</guid>
      <description>&lt;p&gt;twitterとmixiボイスを連携するスクリプトの改訂版です。&lt;/p&gt;
&lt;p&gt;説明は以下に移動しました。
&lt;a href=&#34;http://php-tips.com/software/tw2mv&#34;&gt;tw2mv – twitterとmixiボイスを連携するスクリプト @ php-tips&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>mixiボイスの発言をtwitterに投稿するスクリプト(php版)</title>
      <link>https://php-tips.com/2009/10/10/mixivoice2twitter/</link>
      <pubDate>Sat, 10 Oct 2009 01:43:46 +0900</pubDate>
      <guid>https://php-tips.com/2009/10/10/mixivoice2twitter/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://php-tips.com/php/2009/09/twitter2mixivoice&#34;&gt;twitterの発言をmixiボイスに投稿するスクリプト(php版)&lt;/a&gt;の逆バージョンです。&lt;/p&gt;
&lt;p&gt;このスクリプトは、&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;mixiボイスに投稿した発言をtwitterに投稿&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;mixiボイスの発言に返信された場合、twitterにダイレクトメッセージで転送&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;することができます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>twitter2mixivoice version 0.5.1</title>
      <link>https://php-tips.com/2009/10/08/twitter2mixivoice-version-0-5-1/</link>
      <pubDate>Thu, 08 Oct 2009 00:27:11 +0900</pubDate>
      <guid>https://php-tips.com/2009/10/08/twitter2mixivoice-version-0-5-1/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://php-tips.com/php/2009/09/twitter2mixivoice&#34;&gt;twitterの発言をmixiボイスに投稿するスクリプト(php版)&lt;/a&gt;を更新しました。&lt;/p&gt;
&lt;p&gt;本スクリプトの概要とダウンロードは、&lt;a href=&#34;http://php-tips.com/php/2009/09/twitter2mixivoice&#34;&gt;こちら&lt;/a&gt;を参照してください。&lt;/p&gt;
&lt;p&gt;今回のバージョンアップにより、設定ファイルにハッシュタグを記入することでmixiへ投稿する発言のフィルタリングが可能になります。&lt;/p&gt;</description>
    </item>
    <item>
      <title>MODx PHxプラグイン placeholder問題修正</title>
      <link>https://php-tips.com/2009/09/24/modx-phx%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3-placeholder%E5%95%8F%E9%A1%8C%E4%BF%AE%E6%AD%A3/</link>
      <pubDate>Thu, 24 Sep 2009 21:29:31 +0900</pubDate>
      <guid>https://php-tips.com/2009/09/24/modx-phx%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3-placeholder%E5%95%8F%E9%A1%8C%E4%BF%AE%E6%AD%A3/</guid>
      <description>&lt;p&gt;MODxには、PHxという出力変数をゴニョゴニョするプラグインがあります。
&lt;a href=&#34;http://wiki.modxcms.com/index.php/PHx&#34;&gt;PHx - MODx Wiki&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;だた、このプラグインを導入してしまうとスニペット等で定義したプレイスホルダーの値が参照できなくなります。
（例: dittoのページネーション処理等）&lt;/p&gt;</description>
    </item>
    <item>
      <title>twitterの発言をmixiボイスに投稿するスクリプト(php版)</title>
      <link>https://php-tips.com/2009/09/23/twitter2mixivoice/</link>
      <pubDate>Wed, 23 Sep 2009 22:42:40 +0900</pubDate>
      <guid>https://php-tips.com/2009/09/23/twitter2mixivoice/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://d.hatena.ne.jp/gigi-net/20090918/1253224665&#34;&gt;twitterからmixiボイスにマルチポストするRubyスクリプト書いた - 5.1さらうどん&lt;/a&gt;
のエントリーにいんすぱいあーされて作ってみました。php版です。&lt;/p&gt;
&lt;p&gt;このスクリプトは、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;twitterに投稿した発言をmixiボイスに投稿（@で始まるメッセージは除外）&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://php-tips.com/php/2009/10/twitter2mixivoice-version-0-5-1&#34;&gt;ハッシュタグフィルタリングで特定のメッセージのみ投稿&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;することができます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CakePHP Cookieコンポーネントの改良（ちょっとだけ）</title>
      <link>https://php-tips.com/2009/09/15/cakephp%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%81%AE%E6%94%B9%E8%89%AF%E3%81%A1%E3%82%87%E3%81%A3%E3%81%A8%E3%81%A0%E3%81%91/</link>
      <pubDate>Tue, 15 Sep 2009 22:50:00 +0900</pubDate>
      <guid>https://php-tips.com/2009/09/15/cakephp%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%81%AE%E6%94%B9%E8%89%AF%E3%81%A1%E3%82%87%E3%81%A3%E3%81%A8%E3%81%A0%E3%81%91/</guid>
      <description>&lt;p&gt;cakephpにはCookieコンポーネントがあります。
&lt;a href=&#34;http://book.cakephp.org/ja/view/177/Cookies&#34;&gt;&lt;a href=&#34;http://book.cakephp.org/ja/view/177/Cookies&#34;&gt;http://book.cakephp.org/ja/view/177/Cookies&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;これを利用すると、cookieの管理が楽にできたり格納値の暗号化ぽいことができるのですが、設定方法が&lt;a href=&#34;http://book.cakephp.org/ja/view/179/Controller-Setup&#34;&gt;Controller::beforeFilter()での設定&lt;/a&gt;となり、ちょっとスマートじゃないなと思ったのでひと工夫。&lt;/p&gt;</description>
    </item>
    <item>
      <title>レイアウトを初期化するCSS</title>
      <link>https://php-tips.com/2009/08/26/%E3%83%AC%E3%82%A4%E3%82%A2%E3%82%A6%E3%83%88%E3%82%92%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%99%E3%82%8Bcss/</link>
      <pubDate>Wed, 26 Aug 2009 22:40:52 +0900</pubDate>
      <guid>https://php-tips.com/2009/08/26/%E3%83%AC%E3%82%A4%E3%82%A2%E3%82%A6%E3%83%88%E3%82%92%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%99%E3%82%8Bcss/</guid>
      <description>&lt;p&gt;CSSでレイアウトするときは、ブラウザ間の誤差をなくすためスタイルを初期化してから、個々のCSSを適用するようにするのがベターです。&lt;/p&gt;
&lt;p&gt;というわけで、私が使用しているリセット+よく使うクラスを定義したCSSを晒します。&lt;/p&gt;</description>
    </item>
    <item>
      <title>メモ:poeditを使うときの注意点</title>
      <link>https://php-tips.com/2009/08/24/%E3%83%A1%E3%83%A2poedit%E3%82%92%E4%BD%BF%E3%81%86%E3%81%A8%E3%81%8D%E3%81%AE%E6%B3%A8%E6%84%8F%E7%82%B9/</link>
      <pubDate>Mon, 24 Aug 2009 07:34:40 +0900</pubDate>
      <guid>https://php-tips.com/2009/08/24/%E3%83%A1%E3%83%A2poedit%E3%82%92%E4%BD%BF%E3%81%86%E3%81%A8%E3%81%8D%E3%81%AE%E6%B3%A8%E6%84%8F%E7%82%B9/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://cakephp.seesaa.net/article/87269708.html&#34;&gt;CakePHP のおいしい食べ方: CakePHP1.2の簡単国際化&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;[カタログ]⇒[設定]から、この翻訳ファイルに関する情報を追加できますが、その際、［複数形：］というところを、
nplurals=1; plural=0;
としておきましょう。&lt;/blockquote&gt;
&lt;div class=&#34;zemanta-pixie&#34;&gt;&lt;img class=&#34;zemanta-pixie-img&#34; src=&#34;http://img.zemanta.com/pixy.gif?x-id=c0f840cd-2e05-8e8f-8127-951af08c732e&#34; alt=&#34;&#34; /&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>WPtoTwitterプラグインのテストとして長いタイトルのエントリーを投稿して見る</title>
      <link>https://php-tips.com/2009/08/20/wptotwitter%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%AE%E3%83%86%E3%82%B9%E3%83%88%E3%81%A8%E3%81%97%E3%81%A6%E9%95%B7%E3%81%84%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB%E3%81%AE%E3%82%A8%E3%83%B3/</link>
      <pubDate>Thu, 20 Aug 2009 22:18:47 +0900</pubDate>
      <guid>https://php-tips.com/2009/08/20/wptotwitter%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%AE%E3%83%86%E3%82%B9%E3%83%88%E3%81%A8%E3%81%97%E3%81%A6%E9%95%B7%E3%81%84%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB%E3%81%AE%E3%82%A8%E3%83%B3/</guid>
      <description>&lt;p&gt;適当すぎるけどこんな感じのパッチ。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://php-tips.com/wp-content/uploads/2009/08/wp-to-twitter-mb.patch&#34;&gt;wp-to-twitter-mb.patch&lt;/a&gt;&lt;/p&gt;
&lt;pre class=&#34;brush: diff;&#34;&gt;*** wp-to-twitter.php	2009-08-20 22:04:29.000000000 +0900
--- wp-to-twitter-fixed.php	2009-08-20 22:36:38.000000000 +0900
***************
*** 206,227 ****
  	$sentence = $sentence . &#34; &#34; . get_option( &#39;jd_twit_append&#39; );
  	}

! 	$twit_length = strlen( $sentence );
! 	$title_length = strlen( $thisposttitle );
! 	$blog_length = strlen( $thisblogtitle );
  	if ( ( ( $twit_length + $title_length ) -  7 ) &amp;lt; 140 ) {
  	$sentence = str_ireplace( &#39;#title#&#39;, $thisposttitle, $sentence );
! 	$twit_length = strlen( $sentence );
  	} else {
! 	$thisposttitle = substr( $thisposttitle, 0, ( 140- ( $twit_length-3 ) ) ) . &#34;...&#34;;
  	$sentence = str_ireplace ( &#39;#title#&#39;, $thisposttitle, $sentence );
! 	$twit_length = strlen( $sentence );
  	}
  	if ( ( ( $twit_length + $blog_length ) -  6 ) &amp;lt; 140 ) {
  	$sentence = str_ireplace ( &#39;#blog#&#39;,$thisblogtitle,$sentence );
! 	$twit_length = strlen( $sentence );
  	} else {
! 	$thisblogtitle = substr( $thisblogtitle, 0, ( 140-( $twit_length-3 ) ) ) . &#34;...&#34;;
  	$sentence = str_ireplace ( &#39;#blog#&#39;,$thisblogtitle,$sentence );
  	}
  	return $sentence;
--- 206,230 ----
  	$sentence = $sentence . &#34; &#34; . get_option( &#39;jd_twit_append&#39; );
  	}

! 	mb_internal_encoding(&#39;UTF-8&#39;);
! 	$thisposttitle = urldecode($thisposttitle);
!   $thisblogtitle = urldecode($thisblogtitle);
! 	$twit_length = mb_strlen( $sentence );
! 	$title_length = mb_strlen( $thisposttitle );
! 	$blog_length = mb_strlen( $thisblogtitle );
  	if ( ( ( $twit_length + $title_length ) -  7 ) &amp;lt; 140 ) {
  	$sentence = str_ireplace( &#39;#title#&#39;, $thisposttitle, $sentence );
! 	$twit_length = mb_strlen( $sentence );
  	} else {
! 	$thisposttitle = mb_substr( $thisposttitle, 0, ( 140- ( $twit_length-3 ) ) ) . &#34;...&#34;;
  	$sentence = str_ireplace ( &#39;#title#&#39;, $thisposttitle, $sentence );
! 	$twit_length = mb_strlen( $sentence );
  	}
  	if ( ( ( $twit_length + $blog_length ) -  6 ) &amp;lt; 140 ) {
  	$sentence = str_ireplace ( &#39;#blog#&#39;,$thisblogtitle,$sentence );
! 	$twit_length = mb_strlen( $sentence );
  	} else {
! 	$thisblogtitle = mb_substr( $thisblogtitle, 0, ( 140-( $twit_length-3 ) ) ) . &#34;...&#34;;
  	$sentence = str_ireplace ( &#39;#blog#&#39;,$thisblogtitle,$sentence );
  	}
  	return $sentence;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>CakePHPでDebugKitを使っていたらメモリが足りません云々</title>
      <link>https://php-tips.com/2009/08/20/cakephp%E3%81%A7debugkit%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%84%E3%81%9F%E3%82%89%E3%83%A1%E3%83%A2%E3%83%AA%E3%81%8C%E8%B6%B3%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E4%BA%91%E3%80%85/</link>
      <pubDate>Thu, 20 Aug 2009 21:30:45 +0900</pubDate>
      <guid>https://php-tips.com/2009/08/20/cakephp%E3%81%A7debugkit%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%84%E3%81%9F%E3%82%89%E3%83%A1%E3%83%A2%E3%83%AA%E3%81%8C%E8%B6%B3%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E4%BA%91%E3%80%85/</guid>
      <description>&lt;p&gt;CakePHPで、ごそごそと開発をしていたときのこと。&lt;/p&gt;
&lt;p&gt;突然、エラーが。&lt;/p&gt;
&lt;pre&gt;Fatal error: Allowed memory size of xxxxxx bytes exhausted (tried to allocate xxxx bytes) &lt;/pre&gt;
&lt;p&gt;メモリ不足ですって！？
十分なメモリは確保しているはずなのに。。&lt;/p&gt;</description>
    </item>
    <item>
      <title>投稿テスト</title>
      <link>https://php-tips.com/2009/08/15/%E6%8A%95%E7%A8%BF%E3%83%86%E3%82%B9%E3%83%88/</link>
      <pubDate>Sat, 15 Aug 2009 04:32:43 +0900</pubDate>
      <guid>https://php-tips.com/2009/08/15/%E6%8A%95%E7%A8%BF%E3%83%86%E3%82%B9%E3%83%88/</guid>
      <description>&lt;p&gt;WPtoTwitterプラグインのテストなのです。&lt;/p&gt;</description>
    </item>
    <item>
      <title>はじめに</title>
      <link>https://php-tips.com/2009/08/08/%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB/</link>
      <pubDate>Sat, 08 Aug 2009 22:33:27 +0900</pubDate>
      <guid>https://php-tips.com/2009/08/08/%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB/</guid>
      <description>&lt;p&gt;php-tips.comでは、phpやweb周りのネタをまとめていきます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>MODxで不要なテンプレート変数を削除するSQL</title>
      <link>https://php-tips.com/2009/07/22/modx%E3%81%A7%E4%B8%8D%E8%A6%81%E3%81%AA%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E5%A4%89%E6%95%B0%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8Bsql/</link>
      <pubDate>Wed, 22 Jul 2009 15:36:48 +0900</pubDate>
      <guid>https://php-tips.com/2009/07/22/modx%E3%81%A7%E4%B8%8D%E8%A6%81%E3%81%AA%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E5%A4%89%E6%95%B0%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8Bsql/</guid>
      <description>&lt;p&gt;MODxで記事の複製をすると、テンプレート変数がコピーされるんだけど、その後テンプレートを変更すると使用しないテンプレート変数が残ったままになるので削除するです。&lt;/p&gt;</description>
    </item>
    <item>
      <title>TCPDFのバグ？を報告してみた。</title>
      <link>https://php-tips.com/2009/07/16/tcpdf%E3%81%AE%E3%83%90%E3%82%B0%E3%82%92%E5%A0%B1%E5%91%8A%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F/</link>
      <pubDate>Thu, 16 Jul 2009 22:38:02 +0900</pubDate>
      <guid>https://php-tips.com/2009/07/16/tcpdf%E3%81%AE%E3%83%90%E3%82%B0%E3%82%92%E5%A0%B1%E5%91%8A%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F/</guid>
      <description>&lt;p&gt;&lt;em&gt;2009.08.24 追記
TCPDF 4.6.0021でpatchを適用してもらった模様です。よかったよかった。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;貧弱な英語でBug報告してみたら瞬殺。。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=2822339&amp;amp;group_id=128076&amp;amp;atid=710532&#34;&gt;&lt;a href=&#34;https://sourceforge.net/tracker/index.php?func=detail&amp;amp;amp;aid=2822339&amp;amp;amp;group_id=128076&amp;amp;amp;atid=710532&#34;&gt;https://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=2822339&amp;amp;group_id=128076&amp;amp;atid=710532&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;なんか、文章だけじゃダメだろうからpatchを送ってみたけど伝わってない気がする。&lt;/p&gt;</description>
    </item>
    <item>
      <title>特定のURLを強制的にhttpsにする</title>
      <link>https://php-tips.com/2009/07/14/%E7%89%B9%E5%AE%9A%E3%81%AEurl%E3%82%92%E5%BC%B7%E5%88%B6%E7%9A%84%E3%81%ABhttps%E3%81%AB%E3%81%99%E3%82%8B/</link>
      <pubDate>Tue, 14 Jul 2009 19:47:24 +0900</pubDate>
      <guid>https://php-tips.com/2009/07/14/%E7%89%B9%E5%AE%9A%E3%81%AEurl%E3%82%92%E5%BC%B7%E5%88%B6%E7%9A%84%E3%81%ABhttps%E3%81%AB%E3%81%99%E3%82%8B/</guid>
      <description>&lt;p&gt;mod_rewriteが使えるなら&lt;/p&gt;
&lt;code class=&#34;brush: plain&#34;&gt;
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} ^/anypath [OR]
RewriteCond %{REQUEST_URI} ^/otherpath
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
&lt;/code&gt;</description>
    </item>
    <item>
      <title>macportsでphp5がupgradeできない。</title>
      <link>https://php-tips.com/2009/07/03/macports%E3%81%A7php5%E3%81%8Cupgrade%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84/</link>
      <pubDate>Fri, 03 Jul 2009 18:41:21 +0900</pubDate>
      <guid>https://php-tips.com/2009/07/03/macports%E3%81%A7php5%E3%81%8Cupgrade%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84/</guid>
      <description>&lt;p&gt;&lt;code&gt;Error: Target org.macports.activate returned: Image error: /opt/local/lib/php/.registry/xml_util.reg already exists and does not belong to a registered port.  Unable to activate port php5.&lt;/code&gt;
port あっぷぐれーどを使用としたら、php5のactivateのところで、上記エラーが。&lt;/p&gt;
&lt;p&gt;pearオプションでこけている感じなので、
&lt;code class=&#34;brush: bash;&#34;&gt;sudo port install php5 @5.2.10_1+apache2+macosx+mysql5+postgresql83+sqlite&lt;/code&gt;
な、感じで、やってみませう。&lt;/p&gt;</description>
    </item>
    <item>
      <title>MacOSX ServerのデフォルトPHPでGDを有効にする</title>
      <link>https://php-tips.com/2009/06/17/macosx-server%E3%81%AE%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88php%E3%81%A7gd%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B/</link>
      <pubDate>Wed, 17 Jun 2009 16:57:58 +0900</pubDate>
      <guid>https://php-tips.com/2009/06/17/macosx-server%E3%81%AE%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88php%E3%81%A7gd%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B/</guid>
      <description>&lt;h1 id=&#34;走り書きなので内容について保証しません&#34;&gt;走り書きなので、内容について保証しません。&lt;/h1&gt;
&lt;ol start=&#34;0&#34;&gt;
&lt;li&gt;
&lt;p&gt;XCodeをいれておく。（当たり前か&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;libjpegをコンパイル&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;参考: &lt;a href=&#34;http://aeolus.jp/higuma/2008/10/d-11.html&#34;&gt;Mac OS X 10.5 と libjpeg - 風ブログ&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;上記サイトの通りにやると、
/usr/local/libにlibjpegができます。&lt;/p&gt;</description>
    </item>
    <item>
      <title>redirectとsession(というかset-cookie)</title>
      <link>https://php-tips.com/2009/06/13/redirect%E3%81%A8session%E3%81%A8%E3%81%84%E3%81%86%E3%81%8Bset-cookie/</link>
      <pubDate>Sat, 13 Jun 2009 14:14:28 +0900</pubDate>
      <guid>https://php-tips.com/2009/06/13/redirect%E3%81%A8session%E3%81%A8%E3%81%84%E3%81%86%E3%81%8Bset-cookie/</guid>
      <description>&lt;p&gt;私的メモ。&lt;/p&gt;
&lt;p&gt;外部からパラメータ -&amp;gt; login.php -&amp;gt;[redirect]-&amp;gt; top.php&lt;/p&gt;
&lt;p&gt;redirectの前にset-cookieを送ってもieだと認識してくれないみたい。&lt;/p&gt;
&lt;p&gt;なので、login.phpから直にHTTP Redirectを吐かず、ページを表示させてそこで、reflashや、javascriptで飛ばしてやる必要がある。&lt;/p&gt;</description>
    </item>
    <item>
      <title>開発初期段階でのチケット発行</title>
      <link>https://php-tips.com/2009/06/03/%E9%96%8B%E7%99%BA%E5%88%9D%E6%9C%9F%E6%AE%B5%E9%9A%8E%E3%81%A7%E3%81%AE%E3%83%81%E3%82%B1%E3%83%83%E3%83%88%E7%99%BA%E8%A1%8C/</link>
      <pubDate>Wed, 03 Jun 2009 12:21:21 +0900</pubDate>
      <guid>https://php-tips.com/2009/06/03/%E9%96%8B%E7%99%BA%E5%88%9D%E6%9C%9F%E6%AE%B5%E9%9A%8E%E3%81%A7%E3%81%AE%E3%83%81%E3%82%B1%E3%83%83%E3%83%88%E7%99%BA%E8%A1%8C/</guid>
      <description>&lt;p&gt;BTSにチケットを登録するときは、機能丸ごと登録しちゃうとなかなか完了しなくて鬱なので、「○○機能α版作成」として登録すると幸せになれるかもしれない。&lt;/p&gt;</description>
    </item>
    <item>
      <title>cakephpでPEARライブラリを利用する。</title>
      <link>https://php-tips.com/2008/11/25/cakephp%E3%81%A7pear%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B/</link>
      <pubDate>Tue, 25 Nov 2008 18:50:04 +0900</pubDate>
      <guid>https://php-tips.com/2008/11/25/cakephp%E3%81%A7pear%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B/</guid>
      <description>&lt;p&gt;vendorsにPEARディレクトリを作成&lt;/p&gt;
&lt;pre class=&#34;prettyprint&#34;&gt;vendors/PEAR&lt;/pre&gt;
&lt;p&gt;vendors/PEARのなかに、PEARライブラリをぶち込んでおく。&lt;/p&gt;
&lt;pre class=&#34;prettyprint&#34;&gt;vendor/PEAR
PEAR.php
Net/
DNS.php
DNS/
...&lt;/pre&gt;
&lt;p&gt;vendors/pear_init.phpを下記の内容を作成。&lt;/p&gt;</description>
    </item>
    <item>
      <title>perl 5.6.1 へ movable type を入れたメモ</title>
      <link>https://php-tips.com/2008/10/11/perl-5-6-1-%E3%81%B8-movable-type-%E3%82%92%E5%85%A5%E3%82%8C%E3%81%9F%E3%83%A1%E3%83%A2/</link>
      <pubDate>Sat, 11 Oct 2008 17:20:29 +0900</pubDate>
      <guid>https://php-tips.com/2008/10/11/perl-5-6-1-%E3%81%B8-movable-type-%E3%82%92%E5%85%A5%E3%82%8C%E3%81%9F%E3%83%A1%E3%83%A2/</guid>
      <description>&lt;p&gt;素直に、5.8系にperlアップデートできればいいんですが、もろもろの事情で出来なかったので5.6でMT4.2を無理やり動くようにしたときのメモ。
extlib/Locale/Maketext/Guts.pmの20行目あたりを&lt;/p&gt;</description>
    </item>
    <item>
      <title>awstatsの脆弱性</title>
      <link>https://php-tips.com/2008/10/07/awstats%E3%81%AE%E8%84%86%E5%BC%B1%E6%80%A7/</link>
      <pubDate>Tue, 07 Oct 2008 18:06:35 +0900</pubDate>
      <guid>https://php-tips.com/2008/10/07/awstats%E3%81%AE%E8%84%86%E5%BC%B1%E6%80%A7/</guid>
      <description>&lt;p&gt;ScanNetSecurity - AWStatsのクロスサイトスクリプティングの脆弱性の検証レポートを公表（NTTデータ・セキュリティ）
&lt;a href=&#34;https://www.netsecurity.ne.jp/1_12203.html&#34;&gt;https://www.netsecurity.ne.jp/1_12203.html&lt;/a&gt;
ちょこっとみたところ、任意のjavascriptを実行可能ですね。
cookieの取得から、任意の外部サイトへ接続までできるようです。&lt;/p&gt;</description>
    </item>
    <item>
      <title>JavaScriptでCSSのbackground-positionの値を取得</title>
      <link>https://php-tips.com/2008/09/19/javascript%E3%81%A7css%E3%81%AEbackground-position%E3%81%AE%E5%80%A4%E3%82%92%E5%8F%96%E5%BE%97/</link>
      <pubDate>Fri, 19 Sep 2008 12:24:45 +0900</pubDate>
      <guid>https://php-tips.com/2008/09/19/javascript%E3%81%A7css%E3%81%AEbackground-position%E3%81%AE%E5%80%A4%E3%82%92%E5%8F%96%E5%BE%97/</guid>
      <description>&lt;p&gt;IEとFirefoxで取得方法が異なる。
elem = document.getElementsById(&amp;ldquo;hoge&amp;rdquo;)
でエレメントを取得後、IEだと、
elem.currentStyle[&amp;ldquo;backgroundPositionX&amp;rdquo;]
elem.currentStyle[&amp;ldquo;backgroundPositionY&amp;rdquo;]
で、firefoxだと、
document.defaultView.getComputedStyle(elem, &amp;lsquo;&amp;rsquo;).getPropertyValue(&amp;ldquo;background-position&amp;rdquo;)
で、 &amp;ldquo;50% 50%&amp;ldquo;という感じで取得できるので、split等にて分割して取得。
下記のサンプルは、#hogeのbackground-positionのY軸が設定されていないか、0の場合、20px開始位置を下にずらす。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Google Chromeと次のWeb</title>
      <link>https://php-tips.com/2008/09/03/google-chrome%E3%81%A8%E6%AC%A1%E3%81%AEweb/</link>
      <pubDate>Wed, 03 Sep 2008 16:36:53 +0900</pubDate>
      <guid>https://php-tips.com/2008/09/03/google-chrome%E3%81%A8%E6%AC%A1%E3%81%AEweb/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://japan.cnet.com/marketing/story/0,3800080523,20379766,00.htm&#34;&gt;グーグル「Chrome」、JavaScriptベンチマークで競合ブラウザを圧倒:マーケティング - CNET Japan&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;圧倒的なJavascriptの処理速度ですね。。&lt;/p&gt;
&lt;p&gt;Firefox、Safariでも早いと言われてたのに、それをはるかにしのぐ性能とは、さすがGoogleさんです。&lt;/p&gt;</description>
    </item>
    <item>
      <title>「たつさき」とか「はしごだか」とか文字コードのお話</title>
      <link>https://php-tips.com/2008/08/29/%E3%81%9F%E3%81%A4%E3%81%95%E3%81%8D%E3%81%A8%E3%81%8B%E3%81%AF%E3%81%97%E3%81%94%E3%81%A0%E3%81%8B%E3%81%A8%E3%81%8B%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89/</link>
      <pubDate>Fri, 29 Aug 2008 18:11:38 +0900</pubDate>
      <guid>https://php-tips.com/2008/08/29/%E3%81%9F%E3%81%A4%E3%81%95%E3%81%8D%E3%81%A8%E3%81%8B%E3%81%AF%E3%81%97%E3%81%94%E3%81%A0%E3%81%8B%E3%81%A8%E3%81%8B%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89/</guid>
      <description>&lt;p&gt;まえーに作られた、EUCコードのプログラムをリプレースしていたのですが、IBM拡張文字が文字化けして表示されるようになりました。&lt;/p&gt;
&lt;p&gt;euc-jp（内部）→utf-8（表示）→euc-jp（内部）→euc-jp（DB）&lt;/p&gt;</description>
    </item>
    <item>
      <title>Webページタイトルの表記方法</title>
      <link>https://php-tips.com/2008/08/18/web%E3%83%9A%E3%83%BC%E3%82%B8%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB%E3%81%AE%E8%A1%A8%E8%A8%98%E6%96%B9%E6%B3%95/</link>
      <pubDate>Mon, 18 Aug 2008 16:40:17 +0900</pubDate>
      <guid>https://php-tips.com/2008/08/18/web%E3%83%9A%E3%83%BC%E3%82%B8%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB%E3%81%AE%E8%A1%A8%E8%A8%98%E6%96%B9%E6%B3%95/</guid>
      <description>&lt;p&gt;Webページのタイトルの表記方法について。
主に、
&lt;span style=&#34;font-weight: bold;&#34;&gt;サイト名 | ページ名&lt;/span&gt;
か、
&lt;span style=&#34;font-weight: bold;&#34;&gt;ページ名 | サイト名&lt;/span&gt;
のパターンだと思うのですが、検索エンジンでの表示を考えると後者の
&lt;span style=&#34;font-weight: bold;&#34;&gt;ページ名 | サイト名&lt;/span&gt;
が、ユーザフレンドリーかなと思ったのでメモ。&lt;/p&gt;</description>
    </item>
    <item>
      <title>カタカナ表記が変わるかも</title>
      <link>https://php-tips.com/2008/07/25/%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A%E8%A1%A8%E8%A8%98%E3%81%8C%E5%A4%89%E3%82%8F%E3%82%8B%E3%81%8B%E3%82%82/</link>
      <pubDate>Fri, 25 Jul 2008 19:54:38 +0900</pubDate>
      <guid>https://php-tips.com/2008/07/25/%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A%E8%A1%A8%E8%A8%98%E3%81%8C%E5%A4%89%E3%82%8F%E3%82%8B%E3%81%8B%E3%82%82/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://japan.cnet.com/news/ent/story/0,2000056022,20377831,00.htm?ref=rss&#34;&gt;マイクロソフト、自社製品でのカタカナ表記ルールを変更&amp;ndash;「ブラウザ」は「ブラウザー」に:ニュース - CNET Japan&lt;/a&gt;
技術畑で育った身としては、これは受け付けられませんねぇ。
理由はただ単純にかっこ悪いってだけですけど。
あと、入力が1字増える。歯切れ悪ー。
より発音に近い表記云々と理由として挙げられてますが、どうせ日本訛りになるんだから発音についてはどうでもいいじゃまいかと。ね。
うん。どうでもいいことでした。&lt;/p&gt;</description>
    </item>
    <item>
      <title>ゆめみ 携帯向けApacheモジュール mod_ktaiを公開</title>
      <link>https://php-tips.com/2008/07/18/%E3%82%86%E3%82%81%E3%81%BF-%E6%90%BA%E5%B8%AF%E5%90%91%E3%81%91apache%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB-mod_ktai%E3%82%92%E5%85%AC%E9%96%8B/</link>
      <pubDate>Fri, 18 Jul 2008 11:36:12 +0900</pubDate>
      <guid>https://php-tips.com/2008/07/18/%E3%82%86%E3%82%81%E3%81%BF-%E6%90%BA%E5%B8%AF%E5%90%91%E3%81%91apache%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB-mod_ktai%E3%82%92%E5%85%AC%E9%96%8B/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://japan.cnet.com/mobile/story/0,3800078151,20377418,00.htm&#34;&gt;ゆめみ、絵文字や画像をモバイル端末にあわせて自動変換できるApacheモジュール:モバイルチャンネル - CNET Japan&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;ゆめみは7月15日、モバイルサイト開発向けに、絵文字や画像を端末にあわせて自動変換できるApacheモジュール「mod_ktai（モッド・ケータイ）」を公開した。&lt;/blockquote&gt;
前々から気になっていたApacheモジュールがついに公開されたようです。
これまで自前で行っていた、機種判別とか絵文字変換とかやってくれる模様。
&lt;a href=&#34;http://labs.yumemi.co.jp/labs/mod/man_contents.html&#34;&gt;mod_ktai/YUMEMI Labs [ゆめみラボ]&lt;/a&gt;
ライセンスはApacheライセンスみたいですね。
早速、こっそり使用してみましょうかね。</description>
    </item>
    <item>
      <title>OpenPNE Windows環境での画像アップロード処理をゴニョゴニョ</title>
      <link>https://php-tips.com/2008/07/17/openpne-windows%E7%92%B0%E5%A2%83%E3%81%A7%E3%81%AE%E7%94%BB%E5%83%8F%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89%E5%87%A6%E7%90%86%E3%82%92%E3%82%B4%E3%83%8B%E3%83%A7%E3%82%B4%E3%83%8B/</link>
      <pubDate>Thu, 17 Jul 2008 20:47:03 +0900</pubDate>
      <guid>https://php-tips.com/2008/07/17/openpne-windows%E7%92%B0%E5%A2%83%E3%81%A7%E3%81%AE%E7%94%BB%E5%83%8F%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89%E5%87%A6%E7%90%86%E3%82%92%E3%82%B4%E3%83%8B%E3%83%A7%E3%82%B4%E3%83%8B/</guid>
      <description>&lt;p&gt;Linux→WindowsへOpenPNEのサイトを移行させたのですが、画像のアップロードができなくなったのでその対処法のメモ。
#OpenPneバージョン2.8.2のお話。
とりあえず、画像のアップ処理を行っているところで、エラーメッセージをダンプ。
&lt;code&gt;Warning: filesize() [function.filesize]: &lt;em&gt;stat failed for C:/WINDOWS/TEMP&lt;/em&gt;（略&lt;/code&gt;
ということなので、テンポラリのディレクトリの権限が悪いんだろうなーと、妄想。
php.iniのupload_tmp_dirを弄るなりして、適切な権限のあるディレクトリをアップロード先に指定すればよいのでしょうが、リモートな環境のため弄ることもかなわず。
というわけで、OpenPNE/webapp/lib/db/image.phpのdb_image_insert_c_tmp_imageとdb_image_insert_c_image2の2つの関数内部にあるアップロードファイル読み込み処理を以下のように書き換え。
&lt;code&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
