サポーターズ CoLab 勉強会の資料です。 2018/01/25 https://supporterzcolab.com/event/259/ ※タイトルを「【PHP7 実践編】事例で学ぶ CakePHP と Laravel の徹底比較」と改めています。 2017/09/13 https://supporterzcolab.com/event/137/ Read less
ことの始まり PHP の srand 関数について調べていて、ひょんな拍子にsrandのseedに文字列(numericである必要はあるけど)を渡せることを知った。 では、ここに long を超えるものを放り込むとどうなるのか。 では結果をごらんください。 「!?!?」 なぜこうなるのか 秘密は PHP 処理系の zend_parse_arg_impl 関数にあります。 zend_parse_arg_impl はphpの関数に渡された引数をパースする部分で、longを要求する関数にstringな値が渡された時の処理はこの部分ですね。 https://github.com/php/php-src/blob/master/Zend/zend_API.c#L335 さて、読み進めていくと「ん!?!?」ってなる行があるはずです。 この行ですね https://github.com/php/php-
CakePHPでRESTful APIを作って、Backbone.jsのデータの永続化をサーバサイドで行う方法をメモしておきます。RESTful APIは、FuelPHP等、その他のPHPフレームワーク、Ruby on Rails等でも簡単に作成することができますので、各々好きなものを選択してください。ここでは、CakePHPを使った例を示します。 ここで制作したアプリケーションは、以下よりダウンロードできます。 Backbone ToDos with CakePHP RESTful API – GitHub 開発環境開発環境は以下の通りです。それぞれ執筆時点での最新バージョンを用いました。 ソフトウェアバージョン
2024年4月1日より、Supership株式会社は親会社であるSupershipホールディングス株式会社に吸収合併されました。 合併に伴い、存続会社であるSupershipホールディングスは社名をSupershipに変更し、新たな経営体制を発足しました。本件に関する詳細は、プレスリリースをご確認ください。 2024年4月1日より、Supership株式会社は親会社であるSupershipホールディングス株式会社に吸収合併されました。 合併に伴い、存続会社であるSupershipホールディングスは社名をSupershipに変更し、新たな経営体制を発足しました。 本件に関する詳細は、プレスリリースをご確認ください。
Formヘルパーで、日時選択フォームの出力をカスタマイズする方法。 以下の参考サイト:dateTime()による指定方法をベースに、 input()による指定方法 および 月を英語以外で表示する方法 プルダウンの最初を空欄にする/しない方法 参考サイト CakePHP1.2 Form ヘルパーで日付のフォームを作る | Sun Limited Mt. $form->input('disp_date')の出力 以下の$options設定および追加CSSでカスタマイズした出力 echo $form->input('disp_date', array( 'label' => __('Date', true), 'default' => date('Y-m-d H:i', strtotime($this->data['Model']['disp_date'])), 'timeFormat' =>
CakePHP1.3でWebアプリケーションを構築する上で、Authコンポーネントを使った管理画面を作ってみます。 前提として、adminコントローラ配下に認証をかけることにします。つまりCakePHPで構築したサイト内で「http://xxx.xxx.xxx/admin」にアクセスするためには管理者権限を必要とするようにします。 ユーザ管理テーブルを用意する ユーザIDとパスワードを管理するテーブル「users」を用意します。 CREATE TABLE users ( id INTEGER(8) auto_increment PRIMARY KEY, username VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, date_create VARCHAR(19) NOT NULL, date_update TIMESTAMP NO
CakePHPのcake/libs/viewを見ると、errorsというフォルダの中にerror404.ctpというファイルがある。これをapp側のview/errors下に置くと、404エラーが出た時に、error404.ctpの内容が表示される。 ただし、これだけだとlayoutはdefault.ctpが呼ばれてしまうので、エラー用のページのレイアウトを他のページと完全に分けたい場合なんかは、views/layoutsに新しいctpファイルを作る必要がある。たとえばerror.ctpとか。 error.ctpを作ったら、今度はapp直下にerror.phpファイルを作成する。ファイルの中身はこんな感じ。 class AppError extends ErrorHandler { function error404($params) { $this->controller->layout
はじめに CakePHPで何らかのオブジェクトを操作する場合、対象となるオブジェクトの種類やどこからアクセスするかによって方法が異なる場合があり、それ以前にそもそもインスタンス化されていないことを知らずにアクセスしようと無謀な挑戦を試みたりすることがあります・・・よね?自分の経験上、始めたばかりの時はここで躓くことが結構多く、今でも分からずに調べることが多いですし、あまり使っていないと同じ事を何度も調べたりもしてしまいます。このエントリは、あるオブジェクト「に」あるオブジェクト「から」アクセスする方法について調べたものの備忘録です。 初心者のかたはどうぞ「 初心者の方へ 」にまず目を通してください。 内容は適宜追加・修正される可能性があります。 すべてCakePHP2系の情報です。1系の情報が今後追加されることはありません。 可能な限り公式ドキュメントへのリンクを張っています。日本語訳のあ
これまでJenkins+PHPで色々な処理を自動化させてきたので、今までの記事をまとめてみました。 さくらVPSにjenkinsを入れてみたときの備忘録 jenkinsで新規ジョブを作成して、Subversionと連携してみる Phingをjenkinsと連携させてみる jenkinsでCheckstyle pluginを利用して、CakePHPのコーディング規約をチェックする PHPMD(PHP Mess Detector)をjenkinsで利用してみる PHPCPDとjenkinsを利用して、冗長化したコードを検出してみる jenkinsにPHPDocumentor2を連携させてみる CakePHP2.X+PHPUnit+jenkinsでテストを自動化する ここまでの処理をまとめたビルドファイルもgithubのほうにアップしています。 myPhingBuildXml – github
CakePHP Advent Calendar 2011の23日目の担当です。 @MiuraKatsuさんに続いて記事を書かせて頂きます。 CakePHPを使い始めた当初、一番、楽だなぁと思ったことの一つが、Model::findで簡単にDBからデータを抽出できることでした。ただ、複雑なクエリになってくると、戸惑ったのも事実でした。 基本的なModel::findについては理解しているとして、Model::findでどんなSQLが実際に実行されるかということを考えながら、複雑なクエリを構築する際のTipsをまとめてみたいと思います。Cookbookなどにも同様の内容はありますが、まとまった形で残すことで、どなたかのお役に立てばと思っています。 この記事を通して次のような関連があるDBを考えてみます。 User hasOne Profile User hasAndBelongsToMany
CakePHPでの開発を始めて1年半近く経ちました。しばらく、テストは目視でのテストばかりやっていたのですが、最近になってようやくPHPUnitを使ったテストを始めました。 以前にJavaの開発でJUnitを使っていたことはあるので、xUnitを使ったユニットテストのやり方とか考え方は理解しています。なので、CakePHPでのModelのテストは難なく理解出来たのですが、Controllerをどうやってテストするのか?というのが難しかった。 そもそも、ControllerというはHTTPのRequestとResponseが前提なので、Modelのように単純にテストコード内でインスタンスを作って、メソッドを呼び出して、結果を検証して・・・というようには行きません。 以前のJUnitでやっていた頃はWebのフレームワークとしてStrutsを使っていたけど、あのときはActionのテストってどう
Windows+Eclipseで(ゴテゴテした)快適なCake開発環境を作る(CakePHP Advent Calendar 2011 11日目) @mon_satさんからバトンを受け取ってのAdvent Calendar2011 11日目担当EG(@EGMC)です。 初参加で地味ネタですが、開発環境の話ってあまり聞かないのでとりあえず自分なりに育てた開発環境の話をしてみます。 ※注 この前置きは長いのでさっさと本題に入りたい方は「開発環境構築編(ここから本編)」へどうぞ ネタはWindows+EclipsePDT+その他tools。 昨今、勉強会に行くと皆MacBook Airなどを片手に、華麗にターミナルを開いてVimやEmacsで優雅にコーディングしている光景を目に致します。 そんな光景を横目に見つつ、しかしThinkpadでWindowsを起動してEclipseでもっさり開発してい
CakePHP Advent Calendar 2012 13日目の記事です。 12日は@Ugatsさんの「どこからCakePHPを使えるといっていいのか。」でした。 個人的には、(以前からPHPで開発されていた方限定ですが)「CakePHPを使って便利だなと思えたら使えている」んではないかと思っています。 さて、今年2回目の登場なわけですが、日ごろエントリーを書いていないのでこういうときに書かないとCakePHP界隈から忘れさられてしまいそうなので。 日ごろエントリーを書かなかったからといって、別にプログラムも書いていなかったわけではなく、ガシガシCakePHPで書いています。 最近はzenpreも開発版リリースということでCakePHPでのリニューアルを進めており(以前はRails)、受託案件と並行して楽しい開発ライフを送っています。 「CakePHPも既に枯れたフレームワークで、開発
CakePHP Advent Calendar 2012の15日目の記事です。 昨日は@lifegoodさんの「Phing を利用して CakePHP を継続的インテグレーション」でした。 僕も最近Jenkinsでテストの自動化をしたんですけども、設定ファイルで結構苦労したんで、早速参考にしたいと思います。 最近はCakePHPをガシガシ触っているわけではないので、新しいネタがなかなか無いのですが、普段自分がCakePHPをセットアップしている時にやっているもろもろのことをまとめてみたいと思います。 CakePHPの管理はGitで Composerでインストール作法が今後メインになっていく様な流れを感じますが、会社で普段からGitを使っているのもあり、Gitで管理してます。 基本的にCakePHPのコア部分はgit-submoduleで管理してます。 まずはgit-cloneしてソースを持
メリークリスマス! PHP Advent Calendarもいよいよ24日目に突入です。 昨日はxhprofについてでしたね。僕もパフォーマンスチューニングの際に使っています。手軽に利用できるのでお勧めです。 さて、このエントリーでは表題の通りMVCについて書かせていただきます。これは、PHPカンファレンス2012&WordCamp Tokyo2012合同LT大会で発表した「やはりお前らのMVCは間違っている」で煽るだけだったこの問題をきちんと解説するものです。 この発表資料を公開するとPHPの枠を超えて広く閲覧いただき*1、また多くの方から突っ込みを戴きました。「LTだから」と言って逃げていた回答をして、気持ち新たに新年を迎えようと思います。 MVCとはなんなのか 間違いを指摘する前にMVCがそもそもどういうアーキテクチャであるのかを確認しなければいけません。 MVCは1970年代にパロ
前職を退職してもう半年以上経ってしまいました。おかげさまで、レガシーなコードとのバトル等色々お仕事しています。 さて、先日のPHP Matsuri2012での@ryuzeeさんの発表を聞いて、開発環境や手法を改善するべく、今月から始まったプロジェクト用の環境を構築しています。 CakePHPは最新で! CakePHPの最新stable版は 2.2.3 ですが、既に 2.3.0-beta が公開されています。幾つか2.3.0-betaの機能で使いたかったものがあったのと、今回のプロジェクトのリリース時期が来年の5月という事もあって、2.3.0-beta を使って開発をしています。来年の5月なら2.3.0Stable版がリリースされるんじゃないかとの読みです(^^;さて、どうなるでしょうかw? 出来る限り公開されているPluginを使う 前職の職場では、ある程度蓄積された自前のPluginがあ
QdmailはCakePHPのコンポーネントとしても動作します(バージョン0.7.6.a以降)。 自分自身でCakePHP内から呼ばれているのか、通常のPHPアプリケーションから呼ばれているのか判別しますので、ユーザーはファイルを使い分けたりする必要はありません。 2008-10-01追記 下記、サイトにてスマートなCakePHPでのQdmailの使い方を紹介していただいております。ぜひご参照下さい。 cakePHP メール送信はもうこれでいいでしょ -LoveIT - 安江ブログ 使い方(初期設定) 通常のCakePHPコンポーネントと同じです。 次のディレクトリに qdmail.php ファイルをコピーしてください。 app/controllers/components/ 使用したいコントローラーで、以下のプロパティの宣言を行ってください。 var $components=array(
2012年9月、PHPのフレームワーク戦争は新たな局面に突入した事が明確になってきました。PHPフレームワーク、Symfonyプロジェクトの創始者であるFabien Potencier氏のブログ記事がPHPフレームワーク界で話題です。 オブジェクト指向を本格的にサポートしたPHP5とRailsが与えたインスピレーションから始まった2005年頃からはsymfonyやZend Framework、CakePHP、CodeIgnitierなどのフレームワークを生み出しました。その後、名前空間をサポートしたPHP5.3がリリースされるとコードの抜本的な構造などを見なおした次世代フレームワークが次々に登場します。冒頭のFabien氏の記事では2012年9月6日にZendFramework 2.0とSymfony2.1が奇しくも同日にリリースされました。Fabien氏はZendFrameworkのリリ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く