2017年6月10日開催 PHPカンファレンス福岡2017 Fusicホール 10:30-11:15
![[phpconfuk2017] PHP7で堅牢なコードを書く - 例外処理、表明プログラミング、契約による設計 和田 卓人](https://cdn-ak-scissors.b.st-hatena.com/image/square/07c4d59b6cbde032da1eb21c6f2605fe038c7ceb/height=288;version=1;width=512/https%3A%2F%2Fi.ytimg.com%2Fvi%2F54jHDHvcYAo%2Fhqdefault.jpg)
2017年6月10日開催 PHPカンファレンス福岡2017 Fusicホール 10:30-11:15
トランザクションがコネクション切断時とかに、どういう挙動を示すか?調べてみました。 PHP&MySQLのトランザクション関連の仕様ざっくりと デフォルトでは、すべてのSQLがトランザクションを使用し、オートコミットする。(updateしたら即反映) 明示的に、beginTransactionした場合、そのコネクション上で行われた更新は、commit or rollbackメソッド実行時に一括で反映される。 また、beginTransaction中に接続が切断された場合、rollbackする。 http://dev.mysql.com/doc/refman/5.6/ja/innodb-implicit-commit.html 他のRDBMSだと、コネクション切断時はデフォルトcommitだったりするときもあるので、挙動は確認したほうが良いと思います。 暗黙的コミットにも気をつける 13.3.
array_column() returns the values from a single column of the array, identified by the column_key. Optionally, an index_key may be provided to index the values in the returned array by the values from the index_key column of the input array. Parameters array A multi-dimensional array or an array of objects from which to pull a column of values from. If an array of objects is provided, then public
お疲れ様です。株式会社リスペクト プログラマの山内です。 先輩から「入社してから一年半経ったし今までやってきたことをブログにまとめてみてよ」と言われたので、今回は自分が入社してはじめての社内ツールをつくるまでの話をしてみようかと思います。 どうしてプログラマになったのか せっかくなので、はじめに自分がどうしてプログラマになったのかをちょっとだけ話してみます。 自分は大学時代バリバリの文系で、おおよそプログラミングとは縁遠い生活をしていました。ついでに言えば大学で始めた演劇では脚本家の真似事までしていて、 就活はそれを活かして文章を書くような仕事に就ければなーくらいのことを考えていたのです。 そこで出会ったのが株式会社リスペクトだったのですが、弊社で新卒ライターを募集していたのに目をつけ、ライター志望で弊社の面接に乗り込みました。一次面接を気合でなんとかやり過ごし、多少気を良くした私でしたが
より詳細なCQRSに関する資料はこちら https://little-hands.hatenablog.com/entry/2019/12/02/cqrs 参考資料:http://little-hands.hatenablog.com/entry/jjug2017fall 社内新規プロダクトでDDD, CQRSの思想をベースとしたアーキテクチャを構築し、コマンド(更新系処理)ではSpring Data JPA(Hibernate)を、クエリ(参照系処理)ではjOOQを採用しました。 結果としてそれぞれのORMの良いところを生かした組み合わせのアーキテクチャが構築できたので、その経緯と得られた知見についてお話ししたいと思います。 以下のようなトピックを考えています。 ・CQRSの定義とメリットデメリット ・DDD,CQRSを検討するにあたってのORMの選定ポイント ・構築したアーキテクチャ
概要 PHP 7.2 の開発版 (2016年9月時点で master ブランチ)に mb_chr、mb_ord、mb_scrub が導入されました。これらの関数は私 (masakielastic) が実装を提案し、yohgaki さんが検証と導入をしました。 PHP のソースコードの NEWS ファイルには次のような記載があります。 Mbstring Implemented request #66024 (mb_chr() and mb_ord()) (Masakielastic, Yasuo) Implemented request #65081 (mb_scrub()) (Masakielastic, Yasuo) polyfill-mbstring を利用する mbstring がインストールされていない環境もしくは PHP 7.2 以前のバージョンで mb_chr、mb_ord、m
この記事は何か 挑発的な文言になってる箇所はあるものの、内容としてはそれなりにまじめに書いたつもり。むしゃむしゃしてやった。いまでは反芻してゐる。 PHPDocは必ず書け あらゆる再利用可能な手続きは、他人が容易に応用できるように型が明示的でなければいけない。メンバー全員が実装コード全てを把握できるものならそれが理想だけれど、残念ながら時間は有限だ。ヘッダだけを読んでメソッドの仕様が理解でき、またはコードを読む助けになるようなコメントが良い。 有名な事実を紹介すると、多くのコードは数か月(早ければ数日!)も経てば、他人が書いたコードに感じられるほど理解できなくなることがしばしばある。もちろん設計の練度にもよらうが、設計判断について注意を要した点などをコメントに残しておくことで、ひいては未来の自分の役に立てることができる。 お前の先輩は「PHPには型がない」などと知ったかぶって意味不明1なこ
เว็บสล็อต pt911สล็อต สดจึงเป็นตัวเลือกที่ดีก่อนเล่นและทุกคนสามารถค้นหาได้ สล็อตเว็บตรง100% พวกเขาต้องพิสูจน์ว่ามันจริงหรือเท็จและเล่นด้วยกัน สล็อตออนไลน์ที่ยอดเยี่ยม อย่างไรก็ตาม คุณอาจติดใจจนไม่สามารถหยุดเล่นได้ เพราะถ้าได้เงินมากขึ้นก็ควรเล่นอยู่ดี แต่หากคุณยังไม่ได้เล่นคุณสามารถเล่นเกมอื่น เพื่อดูว่าสล็อตไหนสนุกที่สุดที่จะเล่นอีกครั้ง สล็อตเว็บตรง100% เพราะบางครั้งมันก็ขึ้นอยู่กับเวลาจับรางวัลด
今日はPHP製のデプロイツールの紹介です。デプロイツールとはCapistranoみたいなツールのことです。コマンド一発でデプロイが完了するようにするツールです。 PHP製のツールもいくつかありますが、Deployerは非常にシンプルなツールで、最近3.0がリリースされました(最新版は3.0.4)。 https://github.com/deployphp/deployer/releases/tag/v3.0.0 より。 インストールが簡単 公式サイト http://deployer.org/ へアクセスし、deployer.pharをダウンロードするだけです。 公式には/usr/local/bin/depにインストールすると書いてありますが、プロジェクトのフォルダに突っ込んでも問題ありません。 私はプロジェクトのルートにdeployというフォルダを作成し、そこに関連するファイルをまとめるこ
追記3 別途検証していた際に記事に記載漏れがあったので追記しました。 post のリクエストの箇所で、Requestを利用するためには、bootstrap/app.phpの$app->withFacades();をコメントインする必要があります。 追記2 getとpostだけでは実用的ではないので、ORMとMigrationを触ってみた記事を書いたので見ていただければと思います。 Laravel製 軽量フレームワーク Lumen ORMとMigrationを触ってみる 追記 @shin1x1 さんから以下の様にコメントを頂いたのでサーバー起動に関して記事を修正しました。 Lumen(Laravel)には、ビルトインサーバを起動するコマンドがあるので、こちらを利用すると良いです。 趣旨 laravelから軽量フレームワークの Lumenと言うのが出たらしいのでとりあえず、get,postとテ
Note: In the years since releasing Lumen, PHP has made a variety of wonderful performance improvements. For this reason, along with the availability of Laravel Octane, we no longer support beginning new projects with Lumen. Instead, we recommend always beginning new projects with Laravel. Server Requirements The Lumen framework has a few system requirements. You will need to make sure your server
tl;dr PSR-7は普段PHPにてHTTPメッセージを扱うインターフェイスとしてそこそこ十分に機能する。メインユースケースの8割は満たすだろうが、PHPのポテンシャルの5割にも満たないかもしれない。だがそれで良い。 「今年は PSR-7 が来る」 つい先日、PHP-FIGのHTTPメッセージ用インターフェイスに関するPSR(PHP Standard Recommendations)のステータスがレビュー段階に入った。 https://github.com/php-fig/fig-standards/blob/master/index.md そこでこのエントリではPSR-7のインターフェイスが実際のフレームワークとアプリケーション間での利用の際に上手く機能するかについて考察する。なお、OOPとしての正しさについては深く言及しない(ヘッダーについてのデメテルの法則や、イミュータブル性などだ
元ネタはこちら。 Apache AddHandler madness all over the place Gentoo Bug 538822 どういうことか 次のような指定は危険である。 AddHandler php5-script .php この時に指定される.phpはファイル名の末尾である必要はない。例えば、 aaa.php.html bbb.php.pngなどもphp5-scriptとして解釈されてしまうのだ。これは.XXX.YYYと複数の拡張子が書かれた場合、.XXXと.YYYもAddHandlerの対象となることが原因。 ちなみに次のような場合にはphp5-scriptとして解釈されない。 ccc.php_foo (.php_fooとして解釈されるため) ddd.php_bar.html (.php_barと.htmlとして解釈されるため)実はこのことはApacheのドキュメン
HTMLページをパースしてURLを取り出す処理を書いていたのですが、ページ内のリンクなどが全部絶対URLで記述されていれば非常に楽なのですが、現実としてそうでもなく、ページによっては相対パスで書かれていたりして、正規表現で偏にリンクからURLを抜き出すだけではうまくできませんでした。 そこで少しググってみたら PHPで相対パスから絶対URL(URI)を作成する|PHPプログラムメモ|プログラムメモ という記事を発見!おぉ、これは便利! と思って使わせてもらおうと思ったのですが、いくつかテストしてみて、相対パス処理で不備があるなーと思ったところがあったのでちょっと改良させてもらいました。 37~38行目は正直いらない気がしたのですが、 PHP 5.3 のCLIでWindows上でテストした際に、なぜか \/ (アルファベットのVではなく、\ と / ) で出力されたのが気になったの
pear にも Benchmark というライブラリがあるのですが、使うのがやや面倒。 せっかく php5.3 で無名関数が利用できるので、 perl のBenchmark::timethese っぽく、簡単に実行できるようなベンチマークを作ってみた。 bench.php <?php namespace Bench; /** * ベンチマークを実行し、結果を標準出力に表示 * * @param int $cnt 実行回数 * @param array $functions 比較する処理(クロージャ)を含む配列 * @param closure $interbal 各処理の間に実行するクロージャ * @return void */ function run($cnt, $functions, $interbal=null) { $times = array(); foreach ($func
この記事はPHP Advent Calendar 2014の7日目です。 僕は先日のPHPカンファレンス2014でPHP7に関するLTをしました(参照:「PHPNGの動向」)。ただ、時間が限られていたこともあり、あまり踏み込んだ内容には触れませんでした。 本稿ではLTの内容から深掘りし、zvalという内部的な構造体がどう変わるのか、性能面のメリットにフォーカスして解説してみます。 PHPをとりまく状況 まず最近のPHPの話題をおさらいしておきましょう。 これまでPHPには実用レベルの別実装が存在しない状態が続いていましたが、HHVMの登場で状況が変わってきました。HHVMはFacebookが開発しているPHP実行環境で、PHPより高速で互換性も高いのが特徴です。Facebookで実際に利用されているだけでなく、他の企業でも商用サービスで利用する事例が増えてきています。 そんな中、2014年
最近、Apacheのアクセスログに、以下のような長いPOSTをされた形跡が残っている。結構な広範囲に来ているので、皆さんも見たことあるんじゃないでしょうか。 114.141.196.28 - - [01/Aug/2013:11:01:22 +0900] "POST /%70%68%70%70%61%74%68/%70%68%70?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63%74%6
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く