2013-01-01から1年間の記事一覧
pyramidのテンプレートで「nl2br」のような独自フィルターを挟みたいと思った時にメモです。 今回は「hoge2hage」という「hoge」を「hage」に変換するフィルターを定義してみます。1. フィルター処理を作成 適当なところに処理を作成します。 $ vi myapp/fil…
前回の記事で簡単なdeform利用はできるようになりました。 pyramidにはpyramid-deformと呼ばれるdeform連携パッケージが存在するので今回はpyramid-deformを利用してのdeform利用を試します。 1. リソースの定義 自分はpython歴が浅いのでpython界で常道なの…
以前の記事でmongoengineの使い方が解ってきました。今度はdeformを使ってのフォームの作成を試してみました。 最終的にはpyramid-deformを利用したフォーム連携を目指しますが、まずはdeformを素で使ったシンプルなフォームを作成してからpyramid-deformを…
前日朝までFF14をやってましたが、エオルゼアのご加護のおかげでなんとか遅刻せずに2日目に参加できました。 PofEAA in SQLAlchemy 資料はなかったので動画が以下です。 http://www.youtube.com/watch?v=nClPtRhlDxsSQLAlchemyと関連してPofEAAに記載されて…
pythonのmongodb用ODM(ORM)であるmongoengineのお話です。 mongoengineでmongoのデータを更新するフォームの勉強をしたかったので、mongoengineを軽く触ってみました。 1. 環境構築 今回のテスト用にmyform環境を作成し「/form」をルーティングに追加します…
最近、仕事でpythonに触れる事が多いのでPyCon APAC 2013にいってきました。1日目に聞いたセッションの感想です。 パッケージングの今と未来 資料は以下です。 http://www.slideshare.net/aodag/ss-26183017自分は7月から本格的にpythonを触り始めたのでpyth…
pyramidで作成した管理画面で本番と開発環境でタイトルを切り分けたいとの要望があったのでその対応した時の手順を記します。 プロジェクトの構成は下記となります。 $ pcreate -s starter taka512 $ tree taka512 |- development.ini |- production.ini |- …
前回の記事でdjangoチュートリアルの2までの内容(管理サイトの構築)まで行ったので、チュートリアルの3以降の内容(フロントサイトの構築)を行います。3.2 フロントサイトの作成 投票一覧(index)・詳細(detail)・投票(vote)・投票結果(result)のページを作成…
お仕事の事情でpythonエンジニアにスキルチェンジが求められたので awsにさくっとdjango環境を構築してチュートリアルを行いました。 djangoのチュートリアル1. サーバ環境準備 awsにマイクロインスタンスでAmazon Linuxを立てました。 対象サーバにログイン…
前回の記事ではページ捲り用のクラスを作ってページ捲り機能を実装してました。 今回はデータの取得/計算をコントローラで行いpagination機能だけを使いたい場合の例を記します。 素のphpの場合、この実装がやりやすいと思います。Controllerの変更 リミット…
前回の記事では最初から全データを用意してページ捲りを実装してました。 ただ、データベースに対象データが存在する場合は全件データを取得するのは現実的ではありません。 データベースからデータの一部を取得する形でページ捲りを実装する方法を記します…
knp-componentsを利用してページ捲りを実装する方法を記す。 今回は[domain]/page/1でアクセスできるページ捲りテスト用のページを作成し、a~zまでのアルファベットを表示するページを作成します。knp-componentsのインストール $ vi composer.json "requir…
今回は、結合テストを行う方法を記す。 goutteはブラウザエミュレートしてくれるphpライブラリです。 今回はgoutteを使ってブラウザのリクエストをエミュレートして正常に表示が行われるかのテストを行います。goutteのインストール $ vi composer.json "req…
今回はphpunitをインストールした上で、ユニットテストを行う手順を記します。 ユニットテストはメソッド単体だったりの小さい粒度のテストで 今回はsrc/Taka512/Services/NameService.phpのgetNameメソッドをテストします。 サービスクラスは以下のような感…
pimpleを使ってデータベースへの接続を行いデータベースからデータを取ってくるようにします。データベースにテーブルとデータを追加MYSQLのhogeデータベースにユーザ「hoge」パスワード「hogepass」で接続できるように設定してます。 create databases hoge…
pimpleを使ってslimのroutingを構造化してみます。routes.phpの作成configディレクトリを作成し、routing情報を記述するroutes.phpを作成します。 $ mkdir config $ vi config/routes.php get('/', function() use ($container) { $container['ContentsContr…
プロジェクトディレクトリの構造化を行っていきます。 今回は前回index.phpに作成したNameServiceクラスをファイルから分離して、ネームスペースを利用するように修正します。composer.jsonの修正autoloadの項目を追加します。srcが設定ディレクトリで「Taka…
pimpleはphpでDIコンテナを実現するためのライブラリです。 今回はslimでpimpleを使ってみます。インストールcomposer.jsonにpimpleを追加 $ vi composer.json "require": { "slim/slim": "2.*", "slim/extras": "2.0.*", "twig/twig": "1.*", "pimple/pimpl…
前回インストールしたslim/extrasを利用してログ出力を行う設定のメモログディレクトリを作成 $ mkdir -p logs $ chmod 777 logsindex.phpを編集 $app = new Slim(array( 'view' => new Twig, 'templates.path' => '../templates', 'log.writer' => new \Sli…
最近slimを使う機会がありそうなのでphpのマイクロフレームワークであるslimを基礎から触った。 まずはインストールしてslimとtwigで連携するところまで行う。composerからのslimのインストール $ curl -s http://getcomposer.org/installer | php $ vi comp…
6/15(土)に第4回cookpad開発コンテスト24に参加して応募してみました。 結果は箸にも棒にもかからなかったのですが、提出までこぎ着けたのは有意義な経験だったので感想がてら振り返ってみました。提出ソースhttps://github.com/taka512/symfony_cookpad_de…
会社の技術ブログで「vagrant + chef + serverspecを使った~」みたいな記事を書きました。 その際のchefのレシピはいくつか問題点があると思ってます。 今回はその問題点を解消すべくリファクタしてみた!っていうお話です。会社ブログの記事http://tech.vo…
きたる5/10、定時ダッシュで会社を飛び出しProvisioning Frameworks Casual Talks に 参加してきました。内容はchefとpuppetなどのサーバの構成管理ツールのあれこれというお話で、個人的には「サーバの構成をコード化して共有する」「サーバの構成をテスト…
去年は少し忙しくてブログの更新をさぼった一年でしたが、今年は更新頻度を上げていこうかなと思います(笑 awsでSymfony2.1の検証的な環境を構築する手順です。 Symfony2を触ってみたいけど、わざわざ設定するのはメンドクサイなーってな人向けです。awsな…