ElephantJsを作りました
ElephantJs作りました。 Javascriptのクラスだとおもった? 残念、PHPのクラスでしたー(・∇・ ) ElephantJsはPHPからJavascriptを実行するためのクラスです。 動かすためにはV8jsが必要です。 ソースーコードはgithubに載っけてあります。 https://github.c…
279 件の記事
ElephantJs作りました。 Javascriptのクラスだとおもった? 残念、PHPのクラスでしたー(・∇・ ) ElephantJsはPHPからJavascriptを実行するためのクラスです。 動かすためにはV8jsが必要です。 ソースーコードはgithubに載っけてあります。 https://github.c…
先月ノリでatndに登録したイベント「ゆるかわPHPの会 #1」を、弊社エクスクウェイドにて開催しました。 まあ僕が主催者だけあってそりゃもうぐだぐだした感じのイベントになってしまったわけです... ただ、弊社エンジニアの協力や、参加していただいた方々の協力もあって初めてにしては良いイベントになったのかと思います。 P…
PHPで開発してるとNoticeとかWarningとかのエラーが結構でることってありますよね。 僕もよくあります。 でもでも、やっぱイケてるCTOとして、部下にNoticeだとかWarningだとかのエラー出すのはかっこわるい訳ですよ。 こんな感じに... こんな画面じゃお嫁に行けないわ..ってぐらい恥ずかしいですね。…
phpを初めて使ってからもう6年経つ僕ですが、リダイレクト処理で勘違していたみたいです。 リダイレクトのヘッダを生成した瞬間僕は、phpの処理がとまると勘違いしておりました。 こんな感じに <?php // ...処理いろいろ if ( $isRedirect ) { header('Location: index.p…
以前はMacPorts使ってた僕ですが、最近はもっぱらbrew派です。 そんな僕ですが、やっぱりSWFEditorは使いたくなる訳です。 ところが今の僕のMacBookProにはSWFEditorには入っていません。 ということでインストールしようと思ったら、libpngが周りでトラブルが・・・・ wget "http…
仕事で本来接続されるはずのないデータベースにcakePHPで作られたアプリからデータベースに接続来るなんともキモい現象が発生していました。 よく、アプリの接続先を本番環境と開発環境で切り分けたいとか、このサーバからはこのDBにしか接続したくないってときは、よくモデルのコンストラクタに以下のコードを書いて対応していること…
本来TRUNCATEはトランザクションをサポートしてないのでcommitされないってのはおかしいですね。。。 すいません、無知なもので。。。 んでまあ前回の「mysqliでTRUNCATE TABLE文を発行したら、commitされなかったでござるの巻き」の続きなんですが、結局pythonでためしたところ同じ結果でした…
PHPでのお話です。 マスター/スレーブまでカバーしたDBライブラリを使用しているときに、なぜかSELECTしたあとTRUNCATE文を発行したら、なぜか永遠に処理が終わらないという現象に遭遇しました。 SELECTはスレーブに接続して、INSERT,UPDATE,DELETEはマスターに接続するという単純なライブラリ…
なんかforeachなら絶対に無限ループなんかないと僕は思っていたわkです。 forじゃないんだから、無限ループになるわけなんかないでしょ。 って思っていた自分は死ねばいいと思います。マジで。 まあ無限ループというかメモリオーバーで落ちるだけなんですが、うっかり「memroy_limit = 12288M」とかしちゃう…
このブログをabで速度はかってみたら以下のような絶望的な結果が出ました(´・ω・`) Requests per second: 10.64 [#/sec] (mean) Time per request: 9399.835 [ms] (mean) Time per request: 93.998 [ms] (mean,…
phpの配列の中身を確認するときってvar_dump使って出力すると便利ですよね。 あとはdebug_print_backtraceなんかで中身を確認するとかも便利ですよね。 開発時にはよく使ったりしますが、htmlのレイアウト崩れたして不便だったり見にくかったりする場合も多々あるかと思います。 なんか良い解決策がない…
開発環境には今や必須と言われているXdebug。 エラー時にstack traceみれるし、var_dumpも見やすくなりますね。 それになにより、リモートデバッガー使えるし、本当に便利かと思います。 まあ僕は4年ぐらい前まで理解できていなかったですがw 2ヶ月ほどの前から弊社では、エンジニア一人一人のPCでVM立ち上…
前回の「Redisでランキングを作ろうとしたんだ」で悩んでた部分が解決できました。 かばだんなさん様からのコメントをいただき、対応できました。 本当に感謝しています!! んでもって、結局こんな感じのコードになれば同一を含んだランキングが取得できるかと思います。 <?php $server = "localhost"; …
ことの発端はゴールデンウィークだしまったり大好きなインターネットをしていたら、「JavaScriptで、もう連想配列の最後のカンマに悩まない!」をみていてたときに右下のメニューに「猿でもわかるクロージャ超入門 まとめ」という記事を発見してしまい見てしまったことが原因ですw 最近はPHP5.3での開発がほとんどなので、よ…
phpenv,php-buildはなかなか便利でとっても素敵なツールだと思います。 最近は仮想で用意したCentOSにphpenvとphp-buildつかってphpのバージョン切り替えようと思ったんですが、コンパイル最中になぜかエラーで停止してしまう現象が発生していました。 通常ならphp-buildのエラーログが/t…
なんかちょっとはまったのでメモしておきます。 PHPって配列がフリーダムな感じでとってもいい感じの言語だったりするわけです。 んで、良くやるのがユーザーIDとか一意なキーを配列のindexにしてあげるってやつね。 便利ですよね。例えばこんな感じの配列 <?php $a = array( 1 => array( 'nam…
なんかうまくINDEXが使用されない箇所があって、たまにFORCE INDEXが使いたくなる事ってあると思います。 cakePHPだと、FORCE INDEXを書く方法が無いように見えますが、意外と簡単にFORCE INDEXを書く事ができます。 基本的にテーブル名の後ろに文字列入れられればいいので、実はjoinsに記…
cakePHPで画像のリンク切れ起こしてた場合に、なぜか知らないけど、index.phpにリクエストがという現象が起きていました。 これがtopページとかで起きてた場合はもう最悪、、、、 何回もindex.phpが呼ばれるという怪奇現象が発生しておりました。 うーんおっかしぃなぁーとか思いつつ.htaccessの設定と…
久しぶりにarray_unshiftではまっていました。 というか、仕様をわすれてどうしようもない感じでした^^ えっと、やりたかったこととしては配列のキーをDBのテーブルのIDにしてvalueに項目を入れる配列を作ってました。 <?php $areas = array( 4 => '静岡', 3 => '清水', 8…
cakePHPでカラムにシリアライズした値を入れたいときってたまにあると思います。 ただ、modelごととかメソッド毎にserialize/unserializeの処理をいれるのは結構めんどくさいと思います。 そんな時には以下のようにapp_modelに記述してあげれば、どのモデルからも簡単にシリアライズ処理が出来ると…
Zend_QueueでRedisを使いたくなったので、Zend_Queue_Adapter_Phpredis作りました。 まあほぼmemcacheqのアダプターと構成は同じですがcountとかもちゃんとサポートできている感じです。 まあちゃんとテストも書いてないのでバグがあるかもしれませんが、良かったら使ってみてくださ…
今使っているMacに入っているのがmemcache.soしか入ってなかった。。。memcache.soはあるんですが。 まあPECLでさっくり入れてしまえばいいと思っていたので普通にいれてみたんですね。 sudo pecl install memcache したらlibmemcachedがないと怒られました。。。 li…
最近Redisの凄さに感動を受けました。 memcachedと違ってセットとかリストとか使えるのとかもうヨダレがとまりません(^p^) リストがつかえるってことはcakeでページネートできちゃったら素敵すぎるってことで実装してみようと思った訳です。 基本的にModelにpaginateとpaginateCountを実装…
PHPで引数にコールバック関数を渡すメソッドや関数って沢山あると思います。 それらと同じような事を自分でつくるとしたらどうするのかなぁーとか考えてました。 どうやらPHPにはis_callableという関数があるらしくcall_user_funcと一緒に組み合わせて使えば簡単に作成することができます。 <?php fu…
PHP5.3からはクロージャが使えるようになったんですが、なかなか使う機会がなかったです。 というかクロージャの使いどころが未だに出来てない阿呆な僕だったりするわけです(´・ω・`) んでもまあそれでもやっぱ使い時もあるのでarray_walk_recursive関数でcallbackとしてクロージャでみたいなおしゃれ…