ECサイト運営開発記

PHPフレームワーク Laravelの使い方を中心とした通販サイトの開発日記

PHP

Bootstrap4とLaravel5.1でネットショップをリニューアルした

カレンダーの通販サイト E-カレンダー.comをリニューアルしたので、記録とし、まとめておこうと思います。 以下、リニューアル前の環境。[リニューアル前] サーバーはGMOクラウドPublicのVPS Apache1.3系、PHP5.3、MySQL5系のよくある環境。 Webアプリケーシ…

Laravel4でArtisanによるCLI開発

Laravel4の便利機能のひとつにArtisanというコマンドラインツールが存在します。 プロジェクトルートにて、php artisan ***** とコマンドを打つことで、様々な命令を実行させることができる機能です。 今回は、とりあえず、CSVデータを読み込んで、DBにデー…

ORM Eloquentに追加された新機能

Laravel4の正式リリースまであと1ヶ月ちょっとらしい。現在はBeta5の開発段階。 フレームワークとしての仕様もほぼ固まってきて、おそらく、大幅な変更点は無いだろうということでEloquentの新しい機能を紹介します。 コレクション Laravel4のEloquentでは、…

Laravel4でコントローラーの作成とモデルの作成に関する簡単なまとめ

Laravel4のBeta4がリリースされ動きが活発なLaravel。Laravel4のコントローラーの作成とモデルの作成に関する簡単なまとめを残しておこうと思います。[下準備] Laravel4のインストールについては前のエントリーを参照して下さい。 Laravel4で「HelloWorld」…

Laravel4で「HelloWorld」を表示させるまで

最近、ようやく、注目が集まってきたPHPのWebアプリケーションフレームワークLaravelのLaravel4 Beta4が リリースされたので、HelloWorldを出力するまでの流れを簡単に書いていこうと思います。【Laravel4のインストール】 Laravel4はLaravel3とは違ったイン…

LaravelのORM Eloquentで括弧を使ったクエリーのグループ化する方法

商品テーブルから削除フラグが0で公開ステータスが1の商品で、更に入力されたキーワードに該当する商品を取得したい where("item_public_status", "=", 1) ->where(function($query) use($keyword) { $query->where("item_name", "LIKE", "%$keyword%"); $qu…

LaravelのキャッシュでRedisを使う

PHPフレームワークのLaravelでキャッシュエンジンをRedisにしてみた。以外と、すんなり言ったので、記事を残しておく。 Redisの概要 オープンソースのkey/valueなデータストア インメモリデータベースで非常に高速に動作する ファイルキャッシュするよりいい…

LaravelのORM機能 Eloquent の EagerLoading

LaravelのORM Eloquentには、Eager Loadingという機能がある。 モデル内に定義されたメソッドを元に自身以外の他テーブルからデータを引っ張りだしてくれる便利な機能。 例えば、以下の様なECサイトのテーブル構成でイメージしてみる。商品テーブルにはimage…

LaravelでSQLの実行結果が簡単にわかるプロファイラー機能

Laravel3.1になり、Bandle(プラグイン)として提供されていたSQLプロファイラーのAnbuが標準で組み込まれることになり、LaravelでもCakePHPのようなSQL実行結果が簡単にわかるようになったようです。このプロファイラーはCake同様、ページの下部に固定される…

LaravelのELOQUENTの便利なSETTERとGETTER

LaravelのORMには特定のフィールドに対して、ちょっとした処理を加えて、データを保存できたりする便利な メソッドがあります。わかりやすいのは、パスワードを暗号化して保存したい場合。 $user->password="password" としてやるだけで、文字列が暗号化され…

Laravelのバリデーションの日本語化など。

Webアプリでは欠かせない重要な機能。入力値の検証いわゆるバリデーション。もちろん、Laravelにも、バリデーション機能があるわけで。 一応、備忘録として、日本語化の方法なども含めて、簡単に残しておこうと思う。 下準備 application/config/application…

LaravelでUndefined variableが出てうざい場合

application/config/error.php array(E_NOTICE), ?> と書いてやればいい。

LaravelのBladeテンプレート

PHPのフレームワーク「Laravel」のコントローラーの簡単な使い方とBladeテンプレートについて、備忘録も兼ねて残しておく。 Laravelのインストール方法については、割愛。ダウンロードして、この辺を参考にすれば、基本どうにかなるので。 コントローラーを…

MVCフレームワーク Laravel 3.0

PHP

FuelPHPを勉強してみたが、ORMがなんとなく、気に入らなかったので、他のフレームワークを探してみると、気になるフレームワークを発見。それがLaravel。なんて、読むのかは知らない。ララヴェル?公式サイトは以下のとおり。 http://laravel.com/[概要] Lar…

FuelPHPで気になるあの情報の取り出し方

リクエスト関連の情報 http://example/index/list/でアクセスした場合 コントローラー名の取得 Request::main()->controller "index"ではなく"Controller_Index"というコントローラークラス名が返ってくる。 "index"という名前を取りたい場合はRequest::main…

PHPフレームワークYiiを使ったので、とりあえずメモ

Yiiでオリジナルの設定項目を記述 PATH_TO_PAPP/protected/config/main.phpに "params"=>"params"=>require(dirname(__FILE__)."/params.php") を記述。 同じディレクトリにparams.phpを作成 params.phpで連想配列を返すようにする。 "Yii PHP Framework", /…

入荷情報や在庫情報をTwitterにつぶやいて、ECサイト上にも表示する

ECサイトを運営していると、入荷情報や在庫の情報はこくこくと変わっていきます。 そのたびに、サイトの更新情報として、1ページ書き上げるわけにもいきません。 で、今更ではありますが、Twitterでなにかできないかと思い、ECサイト×Twitterの簡単なサンプ…

findManyToManyRowsetメソッドでトラブった

PHP

Zend_Db_Table_RowクラスのfindManyToManyRowsetメソッドの仕様が変わってしまったため、中間テーブルのデータが取得できないという事態に陥った。 原因はZend_Db_Table_Row_AbstractのfindManyToManyRowsetメソッド内にある一行。 以前は、Zend_Db_Select::…

ECサイトでPHP×MongoDBを使ってみた

PHP

ここ最近よく見かける言葉で「ドキュメント指向型データベース」なんてのがありますが、正直、従来のRDBMSとどう違うのかさっぱりわからない。 で、このドキュメント指向型データベースの代表格がCouchDBとMongoDBなんですが、自分なりに調べてみた結果、Mon…

Smarty3から変わったものなど...

Smarty2系で使用されていた関数名はcamelCase形式になる。 代表的な例 assign_by_ref($tpl_var, &$value) assignByRef($tpl_var, &$value, $nocache = false, $scope = SMARTY_LOCAL_SCOPE) nocacheがtrueだとキャッシュされない。携帯サイトのセッションID…

Smarty3のinsertプラグインに変わる機能

PHP

nocacheブロックでキャッシュを無効にする {nocache} {$var} {/nocache} 変数出力の際にnocache属性をつける {$var nocache=true} または {$var nocache} asssignの際の第三引数をtrueにする $smarty->assign("var","Grate!",true); {$var}

Zend_Db_TableでIN句を指定する方法

SELECTでIN()を使う場合 tableオブジェクトに対してWhereの指定を行う fetchAll($table->select()->where("item_id IN(?)",$idList)); var_dump($rowset); ?> UPDATEでIN()を使う場合 tabl…

Zend FrameworkのZend_Db_Tableで商品同士の関連付けを行う。

Zend FrameworkのO/RマッパーでもあるZend_Db_Tableを使ってテーブルの連結を行う。 商品テーブルと関連テーブルを連結して、関連商品を取得するサンプル。

Zend_Db_Table_Rowを使ったログの保存

_table->getAdapter()); $lm->doInsertLo…

Zend Paginatorのシンプルな使い方

全200件を10件/1ページ毎表示する場合。 Zend_Paginator::factoryで総合件数を指定。 setCurrentPageNumberメソッドで現在のページ番号を指定。 setItemCountPerPageメソッドで1ページあたりの表示件数を指定。 setCurrentPageNumber(1); $pager->setItemCou…

Zend Framework1.8のZend ApplicationでnoViewRendererを指定する

application.iniに以下のように追記 [production] resources.frontController.noViewRenderer = true

ECサイトをPHPフレームワークで全面リニューアルした。

カレンダーの通販サイト「E-カレンダー.com」をシステムをPHPフレームワークで全面リニューアルした。以前までは、Javaのサーブレットっぽいフレームワークっぽいものを使っていたのですが、それだといろいろと効率が悪いということで、 全ての処理を見直し…

Zend_Db_TableでO/Rマッピング -基本操作編

PHP

Zend_Db_TableでO/Rマッピング準備編の続きです。 テーブル定義や宣言したクラスなどは事前にご確認ください。[ここでやりたい事] 新規に商品を追加する(行の追加) 商品情報を更新/削除する(行の更新/削除) もちろん、SQLは一切、書かない ■商品の追加(行の…

Zend_Db_TableでO/Rマッピング -準備編

PHP

Zend Frameworkに同梱されているZend_Db_Tableを使ってO/Rマッピングにチャレンジしてるが不慣れなため、 まだまだ使いこなせていない。 現時点で、Zend_Db_Tableを使って実現できた事と、実現できていない事を簡単にまとめておく。[DB設計] 架空のECサイト…

翔泳社が本気だ

ここ最近、翔泳社がPHPのフレームワーク本を立て続けに出している。 CodeIgniter、CakePHP、そして、今度はZend Framework。 となると、今度は大穴でrhaco?やっぱり、書籍化されるかされないかってのは大きいと思う。 今後も、翔泳社の本は要チェックだ。Ze…