素のPHPでさくらのオブジェクトストレージをlistobject

前回AWS-SDKを使ったが、素のPHPだとどうなるか試した。 やったこと Fiddlerでリクエストを確認 AWS 署名V2を調べた 素のPHPでListObject Fiddlerでリクエストを確認 FiddlerでCloudBerryのリクエストをとった。 GET /<<バケット>>?prefix=&max-keys=1000&de…

さくらのオブジェクトストレージをAWS SDK for PHP 2で

php

PHPからさくらのオブジェクトストレージを利用したくなり、AWS SDKを使えるか試したときのメモ。 AWS SDK for PHP v2 を使った。 list objects composer.json { "require": { "aws/aws-sdk-php": "2.*" } } list_objects.php '<<アクセスキー>>', 'secret' …

Beckyのフォルダ名変更はどうなんだろう

Beckyでアクティブフォルダをクリックすると、フォルダ名変更になる。 気付かずスペース(未読メール読み)をタイプすると、フォルダ名を喪失してしまい、アンインストールを考える。 ちげーよ変更したいんじゃない、選択中のフォルダを再クリックしただけなん…

3項演算子が読みにくいとか難しいとか

3行で書けばいいじゃない。 String s = (condition) ? "hoge" : "piyo";

PlayFramework2.1.3(Java)+JPA 使ってみる #3

play2.1(Java)でJPAを使ってみたメモの続き。UnitTestできるようになったので、UnitTestを書いてみる。DDLはJPAにやらせるので、evolution はパスで。 フィスクチャ注入 play1の play.test.Fixtures みたいのは Ebeanにはある。junit 上で投入してないけど。…

PlayFramework2.1.3(Java) テスト0件問題を回避

play2.1.3(java)で UnitTestができない問題。Play 2.1.3にするとJava版のテストが0件になる事案が発生し、MLでもあった模様 『Play 2.1.3 released https://t.co/6Ie7qdyB5Z— Kazuhiro Hara(Legen) (@kara_d) 2013, 8月 7Play 2.1.3 Javaでテスト0件な問題は…

PlayFramework2.1.3(Java)+JPA 使ってみる #2

play2.1(Java)でJPAを使ってみたメモの続き。 コントローラーから検証#1 UnitTestをあきらめて、コントローラーからDBアクセスを検証してみる。app/controllers/Application.java public class Application extends Controller { public static Result tests…

PlayFramework2.1.3(Java)+JPA 使ってみる #1

Play 2.x RoadmapによるとPlayFramework2.3(Java)では、EBeanでなくJPAが推奨されるようです。職場ではplay1を使っているが、play2でJPAを使えるなら移行しやすいかもしれない。2.3を待たずPlayFramework2.1.3(Java)+JPAでどれだけやれるか試そう。と思った…

Yiiでも中間テーブルにアクセスしたい

またこのネタです。YiiFrameworkのCManyManyRelationは中間テーブルへのアクセスをサポートしていません。ならばオレオレリレーションによってそれを可能にしてみます。前エントリのまとめと反するのですが、まあ、あそびばってことで。 実現のためにCJoinEl…

Yiiで中間テーブルに属性を持たせたいときはHasMany, BelongsToを使う

YiiFrameworkのCManyManyRelationは中間テーブルへのアクセス手段を用意してくれません。なので、中間テーブルに属性を持たせたいときはHasManyとBelongsToを使うのが、今のところエレガントな解決方法のようです。 http://www.yiiframework.com/wiki/285/ac…

laravelのpivotいいなと思ったの巻

yii ActiveRecord の弱点 yii ActiveRecord は、many-manyの中間テーブルに属性を付けにくい弱点があります。たとえばこんな問題とか。 Accessing data in a join table with the related models いまだにキレイな解決方法がない。と思う。ほんとにないの? …

laravel はじめました

公式ドキュメントを購入したのは先月だったか。ようやくはじめた。 はじめて書いたコード 見よう見まねで書いたログインフォームがこれ。 action_login と action_dologin で同じものをviewに渡そうとゴニョゴニョしていますね。controllers/auth.php ''); …

play1.2をJavassistで改造してみた

先日の第3回PlayFramework勉強会でこんなことを考えた。 play1系はメンテナンスモードか、今後の更新はあまり期待できないな、じゃあJavassistで改造すればいいか。普通に考えると、自分でPlayFrameworkをビルドしろってことでしょうが、当日は道に迷ったせ…

play1.2系の自作プラグイン

PlayFrameworkといえばトレンドはplay2.0なのでしょうが、うちはまだplay1.2系です。play1.2系で自作プラグインを作ってみました。 plugins.MyPlugin 作成 play.PlayPluginをextends onなんたらをOverride パッケージは適当に package plugins; import play.…

PHPTALのカスタムモディファイア if, eq を作ってみた

PHPTALと格闘すること数日。PHPTALにはif文っぽい表現をするにはPHPモディファイアを使わざるをえないことに悩みました。 condとeqがあればいいのに。なぜだろう。これが TAL-way なのか。でも欲しい。PHPモディファイアは使いたくない。でも。でも。。。 ん…

YiiFrameworkでPHPTALしてみた

PHPTALやってみようかと思ったので、YiiFrameworkで動くPHPTALViewRenderer作ってみた。 インストール PHPTAL phptalとかgithubからzipをダウンロードし解凍し、classes ディレクトリ下の PHPTALディレクトリと PHPTAL.phpを prorected/vendor/PHPTAL へコピ…

yiiのアクセス制御を学ぶ yii-rightsを導入するの巻

前エントリのロール管理はこれでもロール管理かという代物でした。今回はyii-rightsを使いGUIで管理できるようにします。blogデモにyii-rightsを組み込んだソースやデモも用意されている。手っ取り早く確認したいならはここから。 導入 とりあえずドキュメン…

yiiのアクセス制御を学ぶ アクションで権限チェックしないの巻

前エントリで触れなかったupdateOwnPost関連のアクセス制御について。アクションに書いてしまいがちな権限チェックをフィルタに書いてアクションをシンプルに保っていきたい。 パラメータ付き権限アイテム ここの図でupdateOwnPostを再確認する。updateOwnPo…

yiiのアクセス制御を学ぶ CDbAuthManager導入の巻

ロールベースアクセスコントロール(RBAC)を導入するのは面倒で後回しにしてきました。ロールのデザイン、ロール管理の実装、ユーザー管理の実装、権限付与の実装には時間がかかりそうで躊躇してしまうのです。そこでこれらをできる限り省略してRBACを導入す…

blogデモにユーザー管理機能を設ける

blogデモにユーザー管理機能を追加したときのメモ。gii-Crud GeneratorでUserモデルメンテナンス機能を生成し、生成したコードを調整します。 Userモデルメンテナンス機能を生成する gii を有効にする ついでにgiiにたどり着けるよう urlManager も調整する…

yiiのアクセス制御を学ぶ ログインの巻

YiiFrameworkのアクセスコントロールを学習したときのメモ。 ログインから始めロールベースアクセスコントロール、YiiRightsに辿り着きたい。素直にcookbook買うべきなのかもしれない。 ログイン ユーザー認証。これがなくちゃ話にならない。最初に注意すべ…

yiiext/twig-renderer でビューをフラグメントキャッシュしたい

{{void(...)}}でなく{%do...%}で 前のエントリで{{void(this.endWedgit)}}と書きましたが、{%do this.endWidget %}でいいことがわかり修正しました。ごめんなさい。 フラグメントキャッシュとは フラグメントキャッシュはページの断片をキャッシュする事を指…

yiiext/twig-rendererのビューで独自の書式を使いたい

twig-rendererのfiltersに関数を指定するとtwigのfilter構文でその関数が使えるようになります。twigのfilterとバッティングしたらどうなるんだろ。 こんな感じ。 'viewRenderer'=>array( 'class'=>'ext.etwigviewrenderer.ETwigViewRenderer', 'filters' =>…

yiiext/twig-rendererのビューでメッセージを扱いたい

これをどうするか 'hoge')); ?> Yii クラスをアクセス可能にする Yiiクラス を globals に登録するprotected/config/main.php 'viewRenderer'=>array( 'class'=>'ext.etwigviewrenderer.ETwigViewRenderer', 'globals' => array( 'Yii' => 'Yii', ), ),ビュ…

yiiext/twig-rendererでページの一部分をテンプレート化したい

yii は $this->rendarPartial ですが、Twig はincludeタグで書きます。 renderPartial('_view', array('data'=>$model)); ?> ↓↓↓↓↓ {% include '/views/post/_view.twig' with {'data':model} %} 見たまんま書き換えできると思います。そしてrenderPartialで…

yiiext/twig-rendererでビューテンプレートを継承したい

追記 2012.03.15 やだなーと思っていた{{void(...)}}ですが、{%do...%}で書くべきと気がつき、修正しました。 yiiのスケルトンappでは ページレイアウトの大枠を layouts/main.php、内部のカラム構造を layouts/column1.php, column2.php に実装しています。…

yiiext/twig-rendererでWidgetを使いたい

追記 2012.03.15 やだなーと思っていた{{void(...)}}ですが、{%do...%}で書くべきと気がつき、修正しました。 ほぼ前のと同じですが、素直に this.beginWidgetでもうまくいきました。 前の{% set form = this.createWidget() %}...{{ form.run }}は何かの役…

yiiext/twig-renderer

beignWidget/endWidgetでも書けます。->こちら ここのcreateWidget/wedgit.run は何かの役に立つ(アンチパターンとか)かもしれないので残しておきます。 検証中のコードですがおいておきます。 {% set form = this.createWidget() %} すればwidgetをあきらめ…

モデルを使わないCGridViewサンプル

続いてモデルを使わずzii.widgets.CGridtViewを使ってみる。 サンプルコード ボタンカラムは、データ各要素にprimaryKeyプロパティを要するのでコメントアウトしています。もちろん回避する方法はあるだろうが今回そこまでやらない。protected/controllers/S…

モデルを使わないCListViewサンプル

モデルを使わずzii.widgets.CListViewを使ってみる。 CListViewで何が得られるのか検証したかったのですが、モデルを用意するのが面倒だったので書きました。 サンプルコード protected/controllers/SiteController.php 1, 'title'=>'アルファ', 'create_tim…