PHP
要約: Omnibusを使うとApacheとPHPをバンドルしたオールインワンなPHPアプリケーションのRPMパッケージを作れます。 最近CLIツールやAPIサーバなどはGoで書くようになって、PHPをさわる頻度が減ってきているのですが、それでもPHPの実行環境が不必要になるこ…
kohkimakimoto/workerphp kohkimakimoto/workerphp · GitHub 自分で使う分には最低限、必要な機能を実装できたので紹介します。以下のようなPHPファイルを記述してPHPのコマンドラインから実行するとプロセスが起動しっぱなしになりcront_timeで指定したスケ…
という問題にぶち当たりました。 どういうことかを話す前にPHPアプリケーションの個人的なデプロイ構成について説明します。 要はCapistranoのデプロイと同様なのですが、デプロイ先は以下のようなディレクトリ構成になっています。 . |-- current -> /path/…
4/28にEngineYardさんで行われた第77回PHP勉強会で、私がオープンソースで作っているAltaxというPHPデプロイツールをとりあげていただきました。とっても嬉しかったのでブログに書いちゃいます。PHP勉強会についての詳細はリンク先を参照ください。 第77回PH…
今回はオブジェクト指向について書きたいと思います。 私がオブジェクト指向を初めて学んだのは8年くらい前で、そのときはJavaでコードを書いていました。 クラス、オブジェクト、継承、ポリモーフィズムなどは 「個々の犬オブジェクト(ポチ、シロとか)があ…
PHPとComposerで先日composer/composerのdev-masterに依存したプログラムを作っていたら、composer installのときに以下のようなエラーがでてインストールできない問題にぶちあたりました。 Your requirements could not be resolved to an installable set …
去年10月位にバージョン2に書き直して、今回さらにまるっと書き直しました。 タスクの記述方法などもごっそり変えてしまったので、すでに使っている人は今までの設定ファイルは使えないので注意してください。 https://github.com/kohkimakimoto/altax ドキ…
SymfonyとLaravelはPHPのWebアプリケーションフレームワークで 2014年現在、モダンなPHPフレームワークとして人気があるようです。 両方ともComposerによるパッケージ管理、MVCアーキテクチャ、 開発時のPHP組み込みサーバのサポート、 バンドル(Laravelでは…
最近Laravelを触っています。 で、LaravelだとURLと実行するアクションを関連付けるルーティング部分を Route::get('/', function() { return 'Hello World'; }); こんなふうに、RubyのSinatraっぽくかけるんですよね。ところがこのRouteというクラス、事前…
AltaxというPHPで並列SSHするデプロイツールを作っているのですが、 これのSSH接続部分のテストは当然SSHサーバが必要で、そのへんをTravisでどーやるのかわからず、ずっと悩んでいました。 で、調べていたら、 https://github.com/libgit2/libgit2/pull/177…
Githubで公開しているプロジェクトのCIにはTravisが使えて便利なのですが、 仕事で開発しているWebアプリとかは公開するわけには行かなかったりするので、Travisは使えません。 そんなわけで、仕事でもCIの環境が欲しくなったので、今更ながらjenkinsをイン…
先週末からComposerのドキュメントを個人的に日本語訳してみてます。 http://kohkimakimoto.github.io/getcomposer.org_doc_jp/doc/ 英語むずいいぃぃぃ~~~~~! はい。英語が苦手なんです。キライなんです。使えるようになりたくはあるのだけど、本腰入…
大したコード量じゃないので毎回コピペして使ってたコードなのですが、せっかくなのでテスト書いて、TravisCIとCoverallsでテストして、Packagistに登録してみました。 https://github.com/kohkimakimoto/EArray EArray PHPで配列にアクセスするとき存在しな…
Capistrano的なPHP製デプロイツールAltaxをバージョン1→2としてアップデートしました。 https://github.com/kohkimakimoto/altax このソフトウェアはPHPで記述したタスクを、複数のリモートサーバに対して実行します。 サーバ接続には鍵認証のSSHを使用し、…
こんなの作りました。 BackgroundProcess Webのプロセスから重い処理を実行したいのだけど。。。 PHPでCSVファイルなどから一括で大量のデータ投入を行いたいときがあります。 これをWebアプリケーションのプロセスでやろうとすると、処理時間が長いため、だ…
というタイトルでスライドを作りました。 http://kohkimakimoto.github.io/MySlide/slides/phpenvironment/index.html 内容はともかく、スライド作成のために利用したreveal.jsがすごくいいです。HTMLベースのかっこいいスライドを簡単に作れます。スライド…
前回のお話 PHP WebアプリケーションのテストにSeleniumを使う - その1:SeleniumIDE編 に引き続きSeleniumについて。今回はSelenium Serverを立てて、PHPUnitと連携させてみます。 これができるとユニットテストでは難しいMVCのコントローラのテストや、エン…
これまでテストコードなんてほとんど書いてこなかったのですが、この数日でいつのまにかテストを書くようになっていました。ずっと毛嫌いしていたのですが。今回はそんな過去と決別し、テスト環境を用意した過程やテストへの雑感などをつらつらと書き出した…
以前作ったPHP製デプロイツール。 Altax PHP Deploy tool - PHPでデプロイツールを作った kohkimakimoto/altax - Github これをPackagistに登録しましたよ。 kohkimakimoto/altax - Packagist というわけで、composerを使っているユーザはcomposer.jsonに以…
http://www.codebreak.com/ のHTMLソースに求人が書いてあって、ちょっとニヤリとしたのです。 ...あ。いいこと思いついたよ! それなら、HTTPレスポンスヘッダに求人情報を埋め込むってのはどうかな? エンジニアなら新しいサービスやサイトを見つけると、H…
LTSVをyamlぽいフォーマットで色付き表示するだけ。 以下の記事のPHP版適当実装。 http://d.hatena.ne.jp/naoya/20130206/1360154312 Code #!/usr/bin/env php
PHPMigrate - PHPでマイグレーションツールを作った というMigrationプログラムを自作したのですが、このプログラムでMySQLのトリガを作成するSQLを実行したら、 mysql server version for the right syntax to use near 'delimiter ... というエラーがでて…
デプロイツールに引き続き、今度はPHPでMigrationツールを作りましたので、記事を書きます。 PHPMigrate - https://github.com/kohkimakimoto/phpmigrate フレームワークとMigration 最近のWebアプリケーションフレームワークを使えば、まあだいたいMigratio…
PHPでデプロイツールを作ってみました。 Altax PHP Deploytool. https://github.com/kohkimakimoto/altax なんでこんなものを作ったかというと 開発メモ#1 : Cinnamon によるデプロイ - naoyaのはてなダイアリー シンプルなデプロイツールを書いているという…
サーバの構成として、軽量なリバースプロキシをフロントに置きバックエンドにPHPなどが動くアプリケーションサーバを配置する構成はよく使われると思います。この場合、リバースプロキシとアプリケーションサーバ間の通信は通常HTTPでおこなわれているので、…
これ。 http://www.adminer.org/ あんまり使っている人をみたことないのだけど、個人的に最近よく使っていて気に入っているツールなので紹介。Adminer(アドミナーって読み方でいいのか?)はPHPのDB管理ツールで、なんと1ファイルをWebサーバに置くだけで動作…
Doctrine1.4はsymfony1.4系のデフォルトORMです。symfonyにはORMにバンドルする形でページャ機能も最初から含まれていて便利ですが、一般的にページャの生成はこんな感じのコードになります。 (Jobeetから拝借) // apps/frontend/modules/category/actions/a…
PHPの標準のjson関数だと日本語部分がunicodeエスケープされてしまい、「\u65e5\u672c\u8a9e」とか、ぱっと見よくわからん文字列になってしまうので、ちょっとデバッグがし難かったりします。JSONの仕様上では日本語そのままより、このようにエスケープされ…
先日ベイジアンフィルタを実装した際にCentOSにMeCab(形態素解析エンジン)をインストールしたので、そのへんの手順をメモしておきます。ソース直で入れるのは好きではないので、checkinstallでrpmにしてからインストールしています。 checkinstallをインスト…
PHPとMeCabとMySQLを使ってベイジアンフィルタを実装してみました。ひとまず動くようにはなったので公開します。機械学習によってテキストドキュメントの自動分類ができます。 高校数学すら忘れてしまっていたので、ついでに条件付き確率などを基礎から勉強…