S3を操作するDatasourceを作りたい。S3を操作するDatasourceを作りたい。S3を操作するやりたいこと続くDatasourceとはなんぞや?CakePHPはおよそリレーショナルデータベースでデータを扱うように設計されていますが、それ以外にもファイルにデータを持たせたり、NoSQLなどをデータとすることもできます。それための枠組みがDatasourceです。CakePHPのDatasourceディレクトリを覗いてみると、MySQL、PostgreSQLなどのリレーショナルデータベース用のクラスが用意されています。ここにクラスを追加すれば、CouchDBやMongoDBなどに接続することもできるわけですね。ModelのインタフェースはDatasourceが変わっても同じDatasourceへのアクセスはModelが責任をもって行うので、Controllerなどから直接Datasourceを操作することはありません。ControllerはModelを介してDatasourceにアクセスしますが、そのModelのインタフェースはDatasourceが変わっても同じです。Model::delete()などです。データベースをMySQLからPostgreSQLに変更したり、もしかしたらNoSQLに変更してもDatasourceがちゃんと互換性を持って記述されていれば、Controller以降は全くそれを意識する必要がありません。Modelのインタフェースの設計がリレーショナルデータベースに寄っているので、NoSQLなどをDatasourceにする場合はちょっと面倒かもしれません。いえ、Modelが使える全ての機能を実装する必要もないので、必要な部分だけ使えるようにするのであれば、それほど大きな手間でもなさそうです。S3を操作するDatasourceを作成しました。https://github.com/mikesmullin/CakePHP-AWS-S3-Pluginhttps://github.com/primeminister/CakePHP-Amazon-S3-plugin先人が既にいるので、それを使っても良いですが、これらはCakePHP2.xの仕様に乗っていないので、新しく作りました。S3のオブジェクトの操作です。画像をアップロードできたり。'/tmp/test.png',));名前で検索してデータを取得できたり。$this->Image->findByName('test.png');削除できたりしてほしいです。S3を操作するDatasourceを作った。S3を操作するDatasourceを作った。関連記事Composer3年ぶりのPHP。最近のパッケージ管理ツールComposerに触れてみました。先週から新しいプロジェクトに入ったのですが、開発環境どうするかと少し考えて、PHPでいくことにしました。My365を開発した以降は、ずっとJavaを使っていたので、3年ぶりくらいにPHPをまともに書く態勢となりました。この3年間で変わっ...CassandraHectorで、JavaからCassandraを操作する。「phpcassaで、PHPからCassandraを操作する。」に続いて、今度はJavaからCassandraを操作してみます。HomeのようなAIスピーカーが話題ですよね。音声でテレビや照明が操作できるというのは便利だなと思い、調べていました。調べてみるとAmazon...NagiosすべてのEC2インスタンスを自動でNagiosの監視下に追加するEC2Nagiosを作りました。EC2でインスタンスを立ち上げたり落としたりするたびにNagiosの監視設定を書き換えるのは面倒です。Autoscalingなどを用いて、自動でインスタンスの起動・停止を繰り返している場合はなおさらです。EC2のOpenJDKのアップデートAWSのフォーラムから。7を入れてほしいです」からの「入れました!」というやりとりを見てアップデートしてみました。...エレクトロニクスアメリカAmazon.comから転送業者を使ってスマートウォッチを買ってみた!ちょっとしたチャレンジだったので記録です。超概要!導入からiOS/Android向けビルドまで。最近ぐいぐいきているCocos2d-xについて調べました。Cocos2d-xは、マルチプラットフォームの2Dゲームフレームワークです。マルチプラットフォームのゲームフレームワークというとUnityも有名ですが、最近の感覚値では、2Dゲー...JavaScriptJavaScriptの時刻の扱いが3倍くらい楽になるMoment.jsJavaScriptの時刻オブジェクトといえばDateですが、扱いが少し面倒くさい場合があります。Moment.jsというライブラリを使うと、かなり楽になります。JavaScriptのDateオブジェクトと即変換でき...PHPPHPで2つの配列の共通部分を求めるのにarray_intersect関数が速かった話。昨日のログインしたユーザーの中で今日もログインしたユーザーの一覧を取り出そうと思いました。そこで、昨日ログインしたユーザーのIDの配列と、今日ログインしたユーザーのIDの配列を用意しました。その2つの配列の共通部分を取り出しました...SaaSWebからビジュアルに操作可能なアプリ向けA/BテストツールApptimizeA/BテストツールといえばOptimizelyが有名ですが、iPhone・Androidアプリ向けのA/Bテストツールはまだこれと言った勝者が決まっていません。S3を操作するDatasourceを作った。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。ホームWEB開発サーバサイド開発CakePHPkatty0324経営半分、エンジニアリング半分でやってます。ECSのサービスを複数のロードバランサに追加する2022.01.10Railsプロジェクトにfactory_botの導入2021.12.26ビジネス文書は、読まないで済むほうがいい2021.09.26人気記事mkdirでディレクトリが存在しない時だけディレクトリを作成する。InnoDBの行ロックとテーブルロックの挙動2013.07.122021.02.18Tomcatのログをローテートさせて一定期間で削除する。2014.07.042021.03.07Linuxで共有ライブラリsoを作ったり使ったりする方法。2013.10.242021.02.11UUIDはなぜ、分散環境で好き勝手に生成しても衝突しないのか。RFC4122規格とUUIDの性質。2014.03.282021.02.188年乗ったクロスバイクのボロボロになったパーツをまとめて交換した。2016.11.282021.03.07PHPでnullとfalseと空文字と0は同じ?2011.03.262021.03.07階層化されたデータをHTTPのGETリクエストのパラメータに含める方法。2013.07.27IP制限されているWEBサイトをSSH経由でブラウザに表示する。2014.03.142021.02.11自作ツールテキスト一括変換ツールブラウザ上でリアルタイムにテキストの変換ができるツールです。日記その他ホーム検索トップサイドバーkatty0324経営半分、エンジニアリング半分でやってます。ECSのサービスを複数のロードバランサに追加する2022.01.10Railsプロジェクトにfactory_botの導入2021.12.26ビジネス文書は、読まないで済むほうがいい2021.09.26人気記事mkdirでディレクトリが存在しない時だけディレクトリを作成する。InnoDBの行ロックとテーブルロックの挙動2013.07.122021.02.18Tomcatのログをローテートさせて一定期間で削除する。2014.07.042021.03.07Linuxで共有ライブラリsoを作ったり使ったりする方法。2013.10.242021.02.11UUIDはなぜ、分散環境で好き勝手に生成しても衝突しないのか。RFC4122規格とUUIDの性質。2014.03.282021.02.188年乗ったクロスバイクのボロボロになったパーツをまとめて交換した。2016.11.282021.03.07PHPでnullとfalseと空文字と0は同じ?2011.03.262021.03.07階層化されたデータをHTTPのGETリクエストのパラメータに含める方法。2013.07.27IP制限されているWEBサイトをSSH経由でブラウザに表示する。2014.03.142021.02.11自作ツールテキスト一括変換ツールブラウザ上でリアルタイムにテキストの変換ができるツールです。Handlebars.js2タイトルとURLをコピーしました。