タグ

cakephpに関するyo-11-06のブックマーク (56)

  • CakePHP 2.x で Cron を使う | X->A->O

    目次 はじめに ポイント 例 自作のShellクラス シェルスクリプト ジョブコマンド おまけ コマンドから柔軟に引数を渡す 呼び出しがShellであるかの是非を知る メソッド実行後のコールバックメソッドは・・・「無い」 なんとなくコンソール系が苦手な人 そのほかありがちなトラブル はじめに 以前、CakePHP1.3(ひょっとしたら1.2?)のときにもCronの使い方をメモしたのですが、あちらは通常の、ブラウザから渡されたURLに基づくアクションを疑似的に実行するという、どちらかというと裏技的なやり方であり、CakePHP来のShellの使い方ではなかったようです。(なお、基的なシェルアプリの作り方も書きましたので興味のある方はご覧ください。) 今回2.xを使い始めたこともあり、改めてCronの使い方について学習したのでメモします。1.3とは結構変更があったようで、Consoleと

  • 1-byte.jp - CakePHPを使ったテスト駆動開発

    ブログ初ポストはCakePHPを使ったテスト駆動開発です。 CakePHPはユニットテストとしてSimpleTestに対応しています。 SimpleTestをインストールするだけで、モデルやコントローラ、シェル、ルーティングクラスなどのユニットテストが出来るようになります。 今日はこのCakePHPSimpleTestを使ってテスト駆動開発の流れを説明します。 ただ、僕自身テスト駆動開発を学んだのは去年のCake祭りなので、至らない点が多々あります。 もし何かあれば、コメントでご指摘ください。 今更感もありますが、この場を借りてCake祭りでテスト駆動の指導をしてくださった、@sizuhikoさんに感謝します。 開発手順 まずは開発手順を示します。少し細かいですが、テスト駆動では以下のような順で開発していきます。 設計する。 テストケースを書く。 テストケースをデバッグする。 コー

    yo-11-06
    yo-11-06 2011/04/30
    いい加減にテスト駆動開発をしないといけないって思ってる
  • CakePHP1.2のShellとTaskを使ってみる。 - yuhei.kagaya

    Cakeコマンドを自作できるらしいので、やってみた。 単純にバッチとかもそうだけど、テスト用のデータを作ったり、番にアップしたり、いろんな用途に使えると思った。 まずはHelloWorld的な。 app/vendors/shells/test.php をつくる。 <?php class TestShell extends Shell { function main() { $this->out( "いらっしゃいませ" ); $this->hr(); $this->out( "ごちゅうもんをどうぞ" ); } } ?> 実行! appのカレントディレクトリにいる場合 $ /home/htdocs/cake_installed/cake/console/cake test Welcome to CakePHP v1.2.0.7296 RC2 Console -----------------

    CakePHP1.2のShellとTaskを使ってみる。 - yuhei.kagaya
    yo-11-06
    yo-11-06 2010/11/18
    今さらだけどshellの使い方知らなかった。
  • CakePHP の PHP コード実行の脆弱性を使って CakePHP を焦がす - co3k.org

    2010/11/13 に出たらしい http://bakery.cakephp.org/articles/markstory/2010/11/13/cakephp_1_3_6_and_1_2_9_released を読んでびっくりしたんですが、 Twitter を軽く検索した限りだと CakePHP ユーザでない僕が気づいているのに (日の) CakePHP ユーザさんたちがどうも気づいていないっぽいのでわかりやすくまとめてみることにしました! CakePHP には任意の PHP コードが実行できる致命的な脆弱性があります! 影響のあるサイト結構ありそうですが悪用厳禁です! ※通常リリースの告知のなかにこんな致命的な脆弱性に関する情報を思いっきりわかりにくく書いちゃうのはひどいなあと思うので、ユーザの方は CakePHP に文句を言うといいと思います。僕は CakePHP ユーザじゃない

    yo-11-06
    yo-11-06 2010/11/17
    なんだってー!
  • chocoby.jp

    Name chocoby, cho_co, Kenta Okamoto Links Blog (2019-) Blog GitHub (chocoby) Twitter (cho_co) Speaker Deck (chocoby) Mail Development CurryBu Web service to share and explore curry 🍛 jp_prefecture Convert japan prefecture code into prefecture name buranko Tool to parse a git branch name and append commit message Skills Programming - Ruby, Swift, Golang, JavaScript (Flow, TypeScript) Frameworks -

  • 初心者のためのCakePHP 1.3 プログラミング入門 - libro

    ※ページが正常に表示されない場合 AddBlockなどの広告ブロックツールがONになっていると、ページの一部が表示されないことがあります。これらのツールをOFFにしてみてください。 PHPビギナーのための、CakePHP 1.3 フレームワークの入門ドキュメントです。「PHPの基は一通りわかる」というレベルの人を対象に、短時間で、すぐにWebアプリケーションが作れるようになることを考え、ポイントを絞って説明をしていきます。 ※CakePHP 2.0の入門は、こちらへどうぞ。 ※PHPがよくわからない、という方は、こちらのPHP入門をどうぞ。

  • http://hiromi2424.lv9.org/translate/cakephp13/13-migration-guide

  • CakePHP group byとinner joinでhasManyデータの件数を検索する – MT Systems

    例えばusersテーブルとpostsテーブルがあり、「users hasMany posts」としたとき、ユーザの投稿したメッセージ件数の一覧表など作りたいことなど、普通にあると思う。そんなとき、usersテーブルとposts テーブルをJOINして、同じuser_idを持つpostsデータをGROUP BYでまとめて、count()で件数を引っ張り出す。SQLで書くと以下のような感じ。 SELECT User.id,User.name,count(Post.user_id) AS num FROM users AS User LEFT JOIN posts AS Post ON User.id=Post.user_id GROUP BY User.id; ここで、投稿を1度もしていないユーザを省略したい場合は、「LEFT JOIN」を「INNER JOIN」に変更すればよい。 さて、この

  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
  • 運用時にPHPのエラーを確認する方法 | CakePHP入門

    運用時にデバック情報を画面出すのはまずいので、下記の設定をします。 [app/config/core.php] define('DEBUG', 0); この状態だと全く何もでないので、ファイルにエラーを書き込むようにします。 [app/webroot/index.php] require CORE_PATH . 'cake' . DS . 'bootstrap.php'; error_reporting(E_ALL); //追加 ini_set("display_errors", 0); //追加 ini_set("log_errors", 1); //追加 ini_set("error_log", "/path/to/phperror.log"); //追加 (ログを書き込むファイルには書き込み権限が必要) 設定

  • CakePHP 管理画面を作成する方法 | Sun Limited Mt.

    CakePHP で管理画面を作成する方法です。 管理画面も CakePHP では簡単に作成することができます。 設定 /app/config/core.php の下記のコメントアウトをはずします。 define('CAKE_ADMIN', 'admin'); これで http://www.example.com/admin/controller/action という URL でアクセスできるようになります。 CAKE_ADMIN の値を変更すれば URL の /admin/ の値が変わります。 コントローラ 管理画面で使用するコントローラに管理画面用のアクションを追加します。 管理画面用のアクション名は admin_index のように admin_ が付きます。 この ‘admin’ の部分も CAKE_ADMIN によって変わります。 ビュー 管理画面用のアクションで表示するデフォルト

  • CakePHPでコントローラーを複数のディレクトリに整理する方法 - yandod's blog

    大規模な開発に向いているといわれているsymfonyはディレクトリ構造が最初から3階層に分類されています。アプリケーションの規模が大きくなるにつれて増えていくファイルを整理する為のルールが最初から定められている形です。 project/ +-apps/ +-backend/ +-frontend/ +-modules/ +-HogeModule +-FugaModule +-MogeModule +-actions/ ←実際のコントローラー(アクション)はここに追加する 対するCakePHPはこういった階層は無く、コントローラーは controllersディレクトリにフラットに配置されています。ディレクトリがシンプルな分、把握しやすいとも言えますが規模が大きいアプリケーションの場合にコントローラーの数が増えすぎると扱い辛いという問題が起こります。 しかし実は簡単な設定を行う事でコントローラ

    CakePHPでコントローラーを複数のディレクトリに整理する方法 - yandod's blog
  • 3.4. CakePHP運用環境 のセットアップ

    New CakePHP 5.0 Chiffon. Faster. Simple. Delicious. What's new in version The migration guide has a complete list of what's new in. We recommend you give that page a read when upgrading. A few highlights from 5.0 are: PHP 8.1 required. Improved typehints across the framework. CakePHP now leverages union types to formalize the types of many parameters across the framework. Upgraded to PHPUnit 10.x

    3.4. CakePHP運用環境 のセットアップ
  • CakePHPを使ったMVC設計のベストプラクティス - Sooey

    CakePHPを使ったMVC設計のベストプラクティス 個人的にはCakePHPはあまり好きではないのですが、CakePHP開発メンバーによるMVCデザインの記事 (CakePHP のおいしいべ方)で紹介されていたBest Practices in MVC Design with CakePHP (php|architect’s C7Y)はMVCフレームワーク利用者にとってとても有用な情報だったので、訳してみました(php|architectの方には翻訳許可を頂いています)。 この記事を読んでドメインモデルに興味を持った方は、エンタープライズ アプリケーションアーキテクチャパターン(PoEAA)やDomain-Driven Design: Tackling Complexity in the Heart of Softwareに手を出してみるのもいいかも。他に、InfoQにユーザー登録すれ

  • CakePHPのレンダリング処理(render) - テクメモ

    CakePHP1.2、viewのレンダリング処理部分についてのメモ。 Controller::render() viewを解釈して、結果をoutputプロパティに文字列として格納するメソッド。 戻り値としてレンダリング結果を返す。実際の出力まではやらない。 複数回呼び出すと、出力内容は上書きされるのではなく追加されていく。 一度renderを呼び出すとautoRenderはfalseとなる。 <?php class Controller extends Object { function render($action = null, $layout = null, $file = null) { // 略(処理準備) $this->autoRender = false; // Viewのrenderが実際の処理を行う // 結果は追加されていく $this->output .= $View

    CakePHPのレンダリング処理(render) - テクメモ
  • CakePHP勉強会第4回@Tokyo:参加レポート | Creazy!

    第4回CakePHP勉強会@Tokyoに参加してきました。 ・第4回CakePHP勉強会@Tokyo ・cakephpstudy on USTREAM: . Conference 今回、勉強会としては初めて懇親会まで参加できたのですが、帰りの電車がやばくなってきたのでLTを全部聞き終えたところで退散しました。ただ、もともと興味があったところや、全く知らなかったノウハウなんかも満遍なく聞く事ができたので有意義な時間を過ごさせてもらいました。 「レポート書くまでが勉強会」って事で、メモをちょっとだけリライトして書いてみます。(長いよ) ※リンク等はあとから補足します。 candycane(yandodさん) ・第4回CakePHP勉強会@Tokyo無事終了 – yandodの日記 いきなり「秘密の饅頭」配布w candycane クリスマスの飴が由来(Cakeから連想で) 誰でも使えるBTSを

    CakePHP勉強会第4回@Tokyo:参加レポート | Creazy!
  • CakePHP cache()はCache::write()に

    CakePHPにはキャッシュを行う関数cache()があるのですが、1.2.2のソースを見るとdeprectatedになってました。 [cake/basics.php] <?php /** * Reads/writes temporary data to cache files or session. * * @param string $path File path within /tmp to save the file. * @param mixed $data The data to save to the temporary file. * @param mixed $expires A valid strtotime string when the data expires. * @param string $target The target of the cached da

  • CakePHPのcore.phpの設定を勉強!! - 子だぬきの技術習得ノート

    今回、自分なりにcore.phpの各設定値を調査してみたのでブログに載せておきます。 あまり情報が載っていなかった項目や、説明の意味が分かりにくかった項目があって 自分なりの解釈で行っている所もありますが、とりあえず全部の項目をまとめました。 今回、自分なりにcore.phpの各設定値を調査してみたのでブログに載せておきます。 あまり情報が載っていなかった項目や、説明の意味が分かりにくかった項目があって 自分なりの解釈で行っている所もありますが、とりあえず全部の項目をまとめました。 Configure::write(‘debug’, 0); 0 = 運用モード 1 = エラーと警告を表示 2 = エラーと警告、SQLを表示 3 = エラーと警告、SQL、コントローラのdumpを表示 Configure::write(‘App.encoding’, ‘UTF-8’); システム内部での文字コ

  • [CakePHP]タグの絞込み機能

    HABTMのタグの絞込み機能のお話 CakePHPで、あるテーブルに対してHABTMで持たせたタグを絞り込んで表示させる機能を、散々苦労してやっと実装できたのでメモしておきます。*1 説明のためにCakePHPのブログチュートリアルのモデルをさらに簡略化して、それを元に説明してみます。 Model 規約に従っていれば必要の無いプロパティも記事に汎用性を持たせるために書いておきますね。 記事テーブル テーブル:posts モデル:Post フィールド:id, article, created, modified*2 class Post extends AppModel { var $name = "Post"; var $useTable = "posts"; // 規約に従えばいらない // 規約に従えば$hasAndBelongsToMany = array("Tag");でOK va

    [CakePHP]タグの絞込み機能
  • [CakePHP] HasAndBelongsToMany(HABTM)の条件指定&ページングのメモ YARETOKO「ヤレトコ」メインブログ

    CakePHPの1.2系でHasAndBelongsToManyのアソシエーションでpaginatorでページ送りを作ろうとしたらちょっとハマったのでメモ。 テーブル構成 多対多のリレーション books ⇔ tags -id -id -name -name ジョインテーブル books_tags - book_id - tag_id やりたかったことは、 booksの一覧を特定のタグで絞ってページネーションする やり方 Pagination of data from a HABTM relationshipこちらで紹介されていた方法 $this->BooksTag->bindModel(array( 'belongsTo' => array('Book' => array( 'className' => 'Book', 'foreignKey' => 'book_id', ) )) ,f