サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Wikipedia
kinjouj.hatenablog.jp
2013-07-10 Laravel使ってみた (8) - Laravelでのモックテスト - PHP Laravel テスト 何やら前回でEventがあーだらこーだらですっ飛ばすっていうのを書いたんですが、あれEventがどうだとかいう事じゃなくて、単純にMockオブジェクトとしてのテスト手法なセクションだった模様で... まぁ例題的にはLogクラスをモックオブジェクトにしちゃうとかっていう所が単純そうなので、「アクションからLog::infoされた内容を検査する」的な感じで、コントローラーは単純に <?php public function show($id) { Log::info("id = $id"); } っていう感じで引数な$idをinfoログとして出力させておくだけ。でこのコントローラーな所にアクセスした際にこの引数を検査する <?php class HomeContro
2013-05-08 FuelPHPをやってみる (29) - OrmAuth - PHP FuelPHP これも1.6から入った物だと思うのだけど、まぁ名前の通り「SimpleAuthをOrmパッケージでやった物」的なスタンスなのかなと。まぁ「Orm自体だけでもパフォーマンスそんなに良いとは言えないような気がするのに、これ必要なんですか」っていう疑問がまず出たのだけど、まぁやってみましょうか的な感じで 恐らくはormパッケージも使うのでalways_loadにはorm及びauthが必要かと OrmAuthのモデルが使うテーブルをマイグレーション oil r migrate --packages=auth っつーかauthパッケージで使うテーブルってマイグレーションで出来るのかと。それは知らんかった... fuel/app/config/auth.php fuel/packages/au
FuelPHP 1.6 Release(祝) っていう事で1.6から追加された模様気なOrm\Model_Temporalを使ってみる。まずこれなんなのかって、バージョニング出来るモデルみたいな感じなのかなと。で What's Temporal model FuelPHP東京勉強会03 from Takayuki Yamaguchi ぶっちゃけこれ見た方が概要全て解説されているかと思いますんで、是非一読される事をオススメします。っていうか自分もこれ見てやってみただけなので fuel/app/models/sample.php <?php class Model_Sample extends Orm\Model_Temporal { protected static $_table_name = "sample"; protected static $_primary_key = ar
2013-01-18 AppWidgetでListView Android Java 検証したのいつかは覚えてないんですが、ネタとして書いておく Android API Level 11(Android3.x)くらいからだと思うんですが、AppWidgetにListViewが使えるようになってる。それを検証したという件 要件 AppWidgetで自分のTwitterのTLの10件を取得してそれをListViewとして表示する こんだけ。OAuth使いません、まだ普通にリクエストしても取得できる模様なので*1 多分、結構な記事内容になると思うんで(ry あとAndroid4.2(Emulator)で検証 AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http:/
あくまで「HTTPリクエストを行うのが前提」っていう所です でコントローラーが <?php class Controller_Home extends \Controller_Rest { protected $_supported_formats = array( "html" => "text/html", "json" => "application/json" ); public function get_index() { if ($this->format == "html") { throw new HttpNotFoundException(); } return $this->response(array("message" => "hoge fuga foobar")); } } な感じでController_Restなアクションコントローラーを用意。あくまでテストす
Mocha - the fun, simple, flexible JavaScript test framework Home - Chai を使ってnode.jsでもbrowserでテストランナーなHTMLを読み込んでもテスト出来るテストフレームワークな感じ(正式的にはどういうスタンスなのか個人的に不明)。使ってみるとする で上記の公式ドキュメント(正確にはgithubのwiki)にもあるように、mochaで使うアサーション的な所はnodejsとかだとassertがあるからいいけどブラウザとかでも実行できる方向で書いていくので、今回はchaiを使う。should.jsっていうのもあるけど、これブラウザ向けなやつが提供されてない模様(っていうそこら辺不明) インストール mochaとchaiを導入する npm install -g mocha npm install -g chai
2013-03-21 「mocha-phantomjs+jscoverageでコードカバレッジ出力」な流れをgruntに移植する JavaScript Node.js grunt このネタの前提は mocha-phantomjs+jscoverageでコードカバレッジ出力 - kinjou_j (転職中)のメモログ JavaScriptでのドキュメントの生成 - kinjou_j (転職中)のメモログ なネタに依存します 今までは jscoverage lib mocha-phantomjs -R json-cov test/runner.html | json2htmlcov > coverage.html な感じなのを普通に実行してカバレッジを出力していた。こういうのもどうかと思うので、最近というかちょっと前だと思うけどGruntっていうNode.jsベースなビルドタスクツール
2013-01-27 Androidアプリのテスト関係な件 Android Java テスト 色々まとめてみようかと思う。以前勉強したのをAndroid v4.1ベースで検証して書く ただ判例が微妙 前提 アプリとテストはプロジェクトを分ける。テストプロジェクトはアプリプロジェクトを参照として設定する*1 で以下もテストプロジェクト作成段階で設定されるので必要ないけど <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="sample.test.test" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkV
sample.js var Sample = (function() { function Sample() { }; Sample.prototype.say = function(name) { if (typeof name !== "string") { throw new Error("name isn`t a string"); } return "hello world: " + name; }; return Sample; })(); てな感じでJavaScriptを作ってこいつをmocha-phantomjsを使ってテストする*1 test/runner.html (mochaのテストランナー) <!DOCTYPE html> <html> <head> <title>Mocha</title> <meta http-equiv="Content-Type" conte
2013-02-22 Backbone.jsを始めてみる JavaScript Backbone.js Perl Developing Backbone.js Applications作者: Addy Osmani出版社/メーカー: Oreilly & Associates Inc発売日: 2013/05/22メディア: ペーパーバック クリック: 3回この商品を含むブログを見る タイトル通り、以前から勉強しようと思ってたBackbone.jsを始めてみる事に。でこれどう説明すれば良いのかが微妙だけど、「RESTful WebアプリケーションのためのJSサイドのMVCフレームワーク」的な感じかなと。一応色々機能があって(ry とにかく、http://backbonejs.orgを読みつつ進めてみる 概要 ボタンを押すとサーバーから配信されるJSONレスポンスがViewにバインドされるよ
2012-07-11 Chrome Extension開発を勉強してみる (5) - content script + background page - Chrome Extension JavaScript コンテントスクリプトとバックグラウンドページを使って、表示画面中にある画像へのリンクをマウスオーバーした段階で別タブで開くっていうのをやってみる manifest.json { "name": "test", "version": "0.1", "content_scripts": [ { "matches": ["http://*/*", "https://*/*"], "js": ["test.js"], "run_at": "document_end" } ], "background_page": "background.html" } んまぁ本当は対象とするサイトとかをち
EclipseでGradleを使う場合にはGradle STS(Spring Tool Suite)なプラグインを使う事でEclipse上からGradleタスクとか動かせれるらしい。インストール方法の詳細はGradle STS Support -- Installingを見れば分かるけど、やってみる プラグインの導入 上記のリンク先に書いてるようにhttp://dist.springsource.com/release/TOOLS/gradleをアップデートサイトとして利用してインストールする でこれインストールする際にWSTプラグイン入ってないとインストールすらさせてもらえなかった気がするので、事前に入れておく まぁインストールはこれだけっすね。ちなみにSTSを入れるとDashboardがEclipse起動時に自動起動するようになっているので、それはEclipseの設定画面から起動し
超久々にFuelPHPを触って見てる。タイトル通り、FuelPHPからMongoDBを使うネタ。まぁドキュメントに書いてる通り進めてるだけなので、詳しくはそれ読めと ちなみにここからFuelPHP1.5ベースで検証 インストール FuelPHPのMongo_Dbパッケージ自体がPECLモジュールのmongoが入ってないとダメらしいので入れておく 設定 fuel/app/config/db.phpを設定する <?php return array( 'mongo' => array( 'default' => array( 'hostname' => '127.0.0.1', 'database' => 'sample' ) ) ); fuel/app/classes/controller/home.php あとは普通にMongo_Dbクラスを使ってごにょごにょするだけ <?php clas
FuelPHPにLogクラスがありますけど、これを使う場合のログ出力をテストケースでテストしたい場合どうするのかって所。とりあえず手法として、 ログが出力される前と後でログをdiffする ファイルポインタで出力前に末尾にカーソルを移しておいて出力後にログ取得メソッドで更新された分のカーソルを取得する っていう手法を思いついた。とりあえず前者なパターンをやってみた*1 検証対象コントローラー (fuel/app/classes/controller/home.php) <?php class Controller_Home extends \Controller { public function get_index() { Log::debug('hoge'); Log::warning('fuga'); return \Response::forge('OK'); } } Logクラスを
2012-10-14 android.accessibilityservice.AccessibilityServiceを使用してNotificationを取得する Java Android ちょっと前にDeskNotifierっていうスマフォの通知をPCにプッシュするというアプリがあったのを見て思ったのですけど、(Android)スマフォのNotificationって監視して取得したり出来る物なのかっていう所が不明だったので色々と調査で調査結果としてAccessibilityServiceを使う事で可能な模様、という事でやってみた。まぁ詳しい事は公式ドキュメントに書いてあるんですけど AndroidManifest.xml <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="sampl
前回でSimpleAuthを使って認証する方法がありましたが、これを独自実装でやりたい場合にAuthパッケージな機能を利用し認証ドライバを開発する事で組み込める模様。なのでちょっとやってみた ※一応、暫定版です。色々追記するかも データベーステーブル仕様 CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(80) NOT NULL, `password` varchar(50) NOT NULL, `email` varchar(255) NOT NULL, `salt` varchar(255) NOT NULL, `permission` varchar(10) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `userid` (`use
SimpleAuthパッケージを使えば簡単に認証機能を組み込む事が出来る模様ですが、まだ未検証なので自前で認証機能を実装してみる 認証方式 単純にセッションにユーザーが認証済みかを検証できるようにする。でそのセッションにユーザーIDやパスワードを含ませるのはイケてない*1。なのでログイン時にログインハッシュを発行して、それを元にログインをチェックする で認証されているかをチェックするのを毎回コードで実装するのもあれなので、それを行うコントローラークラスを作りbeforeメソッドで処理を行う。 データベーステーブル構造 CREATE TABLE user( id int auto_increment primary key, userid varchar(30) not null unique, password varchar(50) not null salt varchar(255)
タイトル通り。Uploadクラスを使えばサラっとできちゃう模様 fuel/app/config/upload.php fuel/core/config/upload.phpからコピーするなりで作成 <?php return array( 'auto_process' => true, 'max_size' => 0, 'ext_whitelist' => array(), 'ext_blacklist' => array(), 'type_whitelist' => array(), 'type_blacklist' => array(), 'mime_whitelist' => array(), 'mime_blacklist' => array(), 'prefix' => '', 'suffix' => '', 'extension' => '', 'path' => DOCROOT
2012-11-24 FuelPHPをやってみる (19) - Themeを使う - PHP FuelPHP Themeクラスを使う事で動的にレイアウトとなるテーマを切り替えたりも出来る模様 fuel/app/config/theme.php fuel/core/configとかからコピペしても良い <?php return array( 'active' => 'default', 'fallback' => 'default', 'paths' => array(APPPATH.'themes'), 'assets_folder' => 'assets', 'view_ext' => '.html', 'require_info_file' => false, 'info_file_name' => 'themeinfo.php', 'use_modules' => false, );
2012-11-20 FuelPHPをやってみる (16) - CSRFに関して - PHP FuelPHP テスト CSRF関係のAPIも存在するのでそれを利用すれば良い模様 fuel/app/views/home.php <html> <body> <form action="/" method="POST"> <input type="hidden" name="<?php echo Config::get('security.csrf_token_key') ?>" value="<?php echo Security::fetch_token() ?>" /> <input type="submit" /> </form> </body> </html> Security::fetch_tokenを使ってCSRFに使うワンタイムトークンのような物を生成出来る模様。んでCSRFチェ
fuel/packagesにディレクトリを作って ├── bootstrap.php ├── classes └── tests んな感じで構成を作って*1、fuel/app/config/config.phpでパッケージ利用設定を行えば、定義されたクラス群等を利用する事出来る模様。という事でやってみる fuel/packages/sample/classes/sample.php <?php namespace Test; class Sample { public static function say() { return \Response::forge('hoge fuga foobar'); } } とりまぁ適当に。ただ作るだけじゃロード出来ない(はず)のでbootstrap.phpを作成 fuel/packages/sample/bootstrap.php <?php //
fuel/app/modulesに └── sample └── classes └── controller └── sample.php な感じでアプリケーションモジュールとして定義出来る。ディレクトリ構造はfuel/app内とほぼ同様な構造かと。んで、コントローラーの場合はhttp://localhost/モジュール名/コントローラー名/アクション名等でアクセス可能な模様*1 fuel/app/modules/sample/classes/controller/sample.php <?php namespace Sample; class Controller_Sample extends \Controller { public function get_show() { return \View::forge('sample'); } } モジュール名と同等となるnamesp
2012-11-15 FuelPHPをやってみる (12) - Controller_Restを使う - PHP FuelPHP テスト Restfulサポートなコントローラー機構なController_Restを使ってみる。 fuel/app/classes/controller/sample.php <?php class Controller_Sample extends Controller_Rest { /* XMLフォーマットの場合のルートノード名。 protected $xml_basenode = 'data'; */ // レスポンスデータが無い場合のステータスコード。デフォルトは204だったはず protected $no_data_status = 404; // メソッドが無い場合のステータスコード。デフォルトは405だったはず protected $no_meth
PHPを色々やってた時にテンプレートエンジンといえばSmartyな感じで良く使ってた記憶があるので、とりあえずじゃあSmarty使いましょうかと思ってやってみた Smartyのインストール PHP Template Engine | Smartyからパッケージをダウンロード後に展開して出来たディレクトリをfuel/app/vendor内に突っ込む View_Smartyの有効化 View_Smarty自体はparserパッケージに含まれているのでfuel/app/config/config.phpを修正する <?php return array( 'language' => 'ja', 'log_threshold' => Fuel::L_ALL, 'always_load' => array( 'packages' => array( 'orm', 'parser' // 追加 ) )
2012-11-08 FuelPHPをやってみる (5) - Migrationを使う - PHP FuelPHP Railsにそういうのがありますが、FuelPHPでもそういうのがある模様 Migrationを作る oil generate migration items oil generate migration sales fuel/app/migrationsにマイグレーションスクリプトが出力される fuel/app/migrations/001_items.php <?php namespace Fuel\Migrations; class Items { public function up() { // テーブル作成 \DBUtil::create_table( 'items', // テーブル名 array( 'id' => array( 'constraint' =>
2012-11-09 FuelPHPをやってみる (6) - モデルテストとモック - PHP FuelPHP テスト 例えば以下のようなモデルクラスがあった場合 fuel/app/classes/model/items.php <?php class Model_Items extends \Model_Crud { protected static $_table_name = 'items'; public static function findById($id) { $entry = null; try { $entry = static::find_one_by('id', $id); } catch (Database_Exception $e) { Log::warning($e->getMessage()); } return $entry; } } まぁ単純にID値から
ちょいと前に Chrome extension とか JSXで書いたほうが作りやすそう。2012-08-26 15:35:13 via Echofon つーのがあったので、JSXからChrome Extension APIを介するようにすればそれらしい事出来るのではと。という事で遊び&JSX勉強目的でやってみた ※あくまで遊びですからね!! chrome.jsx とりあえずChrome ExtensionなAPIを参照するざっくりなJSXスクリプト?を作る import "js.jsx"; class ApiProxy { var apiProxy : Nullable.<Map.<Object>> = null; function constructor() { this.init(); } function init() : void { this.apiProxy = js.g
omniboxの件でoauth.jsを使ってTwitter APIを利用するのは前にもやったのですが、その際にはAccess Tokenをhttp://dev.twitter.comから発行してそのままコピペしてやったのでAccess Tokenを取得して云々するという所を完全にすっ飛ばした。なので今回はその処理を含めてやってみる 概要 ブラウザアクションをクリックした際に出るポップアップにホームタイムラインを表示する。その際に認証されてなかったらOAuthで認証を要求させてAccess Tokenを取得する。あくまでAccess Token自体をソース内にコピペはしないsha1.js、oauth.js、jquery.jsは別途でダウンロードしてくる で今回はChrome ExtensionなのでTwitter OAuthのCallback URLは空にしてPINを画面上に出るようにする
今まではMySQL Fulltext IndexはMyISAMはサポートされているけど、InnoDBではサポートされていなかったと思うのですが、色々調べててMySQL5.6からサポートされるらしいってのを目にしたのでやってみた http://dev.mysql.com/downloads/mysql から辿ってMySQL5.6をダウンロード。まだ開発版しかないので注意。今回使ってるマシンでやってるのでUbuntu用の.debパッケージを取ってくるまぁ普通にdpkgでインストールしたら、/opt/mysql/server-5.6が出来てるのでMySQLをソースでインストールする際と同様にDBの初期化とかを行うでsupport-filesってディレクトリにmysql.serverってファイルがあるので、これを/etc/init.dにコピーすればserviceコマンドで起動出来るのでコピーしと
このページを最初にブックマークしてみませんか?
『kinjou_j (転職中)のメモログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く