You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
そんな必要あるのか!時は2016年だぞ!という話かもしれませんが、実際必要になったのでメモしておきます。 $ cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) まずビルドに必要なツールを入れます。 $ sudo yum install pkg-config libtool autoconf や bison は CentOS7 にバンドルされているバージョンでは新しすぎるので古いものを入れます。 $ sudo yum install autoconf213 $ wget -O http://rpm.pbone.net/index.php3/stat/4/idpl/14914325/dir/startcom_6/com/bison-2.4.1-5.SEL6.x86_64.rpm.html $ rpm -ivh --forc
phpcon.php.gr.jp 発表したスライドはこちら 10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話 from Masataka Kono www.slideshare.net ここ最近ずっと取り組んだものをまとめて発表してきました。 発表は今までで一番緊張したけどなんとか出来てよかったー!! PHPの生みの親、Rasmus Lerdorfさんが来られてたのがとても印象深かった。 PHPの新しいバージョンをリリースすると、いつも大量のバグ報告が来るので、 リリース前の今、是非テストしてもらってバグ報告をしてください。 って言ってたのでPHP7使って行きましょう!
ようこそ 時代遅れの情報がウェブ上にあふれている。そんな情報を見たPHP初心者は戸惑ってしまうだろう。そして、まずい手法やまずいコードが広まってしまう。 そんなのはもうやめよう。PHP: The Right Way は気軽に読めるクイックリファレンスだ。PHPの一般的なコーディング規約、 ウェブ上のよくできたチュートリアルへのリンク、そして現時点でのベストプラクティスだと執筆者が考えていることをまとめた。 大事なのは、 PHPを使うための正式なお作法など存在しない ってこと。 このサイトの狙いは、はじめて PHP を使うことになった開発者に、いろんなトピックを紹介すること。 経験豊富なプロの人にとっても、これまで深く考えることなく使ってきた内容について、新鮮な見方を伝えられるだろう。 このサイトは、決して「どのツールを使えばいいのか」を教えるものじゃない。 いくつかの選択肢を示して、それぞ
PHPの==は両辺を適当に型キャストしてから比較するような演算子です。この型キャストの規則は難解すぎる上にドキュメントも不十分なため、PHPプログラマでも完璧に理解している人はほとんど居ないくらいの印象です。バグの原因になりかねないため、なるべく==を使わないようにしているPHPプログラマも多いはずです。 ところで、この==演算子の挙動がPHP 5.4.4から変更されていることはあまり知られていません。本稿ではこの内容を紹介します。 Bug #54547 の騒動 まずはこの仕様変更の経緯を紹介します。 2年ほど昔、Hacker Newsで2^63付近の整数に対応する文字列をPHPで比較したときの挙動がおかしいというスレッドが盛り上がったことがありました。具体的には、PHPでは「'9223372036854775807' == '9223372036854775808'」がtrueになるとい
こんな機能があるなんて知りませんでした。割と古いPHPで頭が止まっていましたが、久しぶりにPHPのドキュメントを呼んでいて、autoloadという機能があることを知りました。 大規模プロジェクトだと、クラスをincludeするだけで一苦労 超大雑把に説明すると、以下のようなソースコードはエラーを吐きます。 このとおり。 PHP Fatal error: Class 'MyClass' not found in /Users/katty/Documents/AutoLoader/index.php on line 2 そもそも、MyClassというクラスが定義されているファイルをincludeしないと使えないというエラーです。 規模が大きくなってきて、クラスが100個とか200個とかになってくると、includeするだけでも一苦労だったりしますね。 クラスを使うためにソースコードを自動でin
PHPソースをコーディング規約に合わせて修正してくれるツール「PHP Coding Standard Fixer」を試してみました。 PHPでコーディング規約チェックツールとしては PHP_CodeSniffer が有名です。PHP_CodeSniffer はソースをチェックして、問題点を指摘してくれるのですが、ソースの修正は自分で行う必要があります。 PHP Coding Standard Fixerは、コーディング規約チェックだけではなく、規約に従っていないソースを修正してくれるツールです。 PHP Coding Standard Fixerを使う インストール インストールは簡単で、githubで公開されている php-cs-fixer.phar ファイル をダウンロードしてくるだけです。 実行する ダウンロードしたphp-cs-fixer.pharファイルをphpコマンドで実行しま
コーディング規約って面倒だよね ヾ(・ω<)ノ" 三三三● ⅱⅲ コロコロ♪ ------------------- ↓ 余談はここから ↓------------------- コーディング規約に遵守することほど無駄で生産性のないことはないというのが筆者の考え。 守らないって意味じゃなくて頑張ることじゃないって意味。 そう、自動でコーディング規約に沿ったコードに調整してくれればいいわけだが、 意外にこれが難しかったりする。 PHP4のころからPHP_Beautifier、phpCodeBeautifierなどの整形ツールは存在した。 しかしこれはいわばオレオレコーディング規約で、 規約を順守するという話とは似て非なるもの。 PHP_CodeSnifferという規約を守っているか調べてくれるツールも昔からあった。 しかし、調べてくれるだけで調整は手動。 これが果てしなく面倒くさい。 そこで
2017/03/30 追記 新しいバージョン (v2.0) の記事を書きましたのでこちらもご覧ください fivestar.hatenablog.com この記事は PHP Advent Calendar 2014 の8日目の記事です。 コーディング規約が守れない方とお悩みの方も、チームメンバーがなかなか守ってくれないとお悩みの方も、 PHP CS Fixer があればもう安心。PHP CS Fixer が PHP コードをコーディング規約に沿って整えてくれるので、秩序ある PHP ライフが約束されるでしょう。 そんなこんなで PHP Advent Calendar 2014 の 8 日目ですね。みなさんこんにちは、 fivestar こと小川です。いつのまにかクロコスがなくなって Y の人になっちゃいましたね。 昨今は PSR (PHP Standard Recommendation) の
こんなの作りました。 BackgroundProcess Webのプロセスから重い処理を実行したいのだけど。。。 PHPでCSVファイルなどから一括で大量のデータ投入を行いたいときがあります。 これをWebアプリケーションのプロセスでやろうとすると、処理時間が長いため、だいたいプロセスがタイムアウトしてエラーになってしまいます。困ったものです。 こういうとき、代わりにコマンドラインのプログラムとして実装したりするんですが、任意のタイミングで処理したい場合、コマンド実行する以上サーバにターミナルでログインできる技術者しかデータ投入作業ができなくなってしまいます。 もっとだれにでもできるように、やっぱりWebアプリケーションのインターフェースが欲しくなるのが人情です。 Webアプリから非同期にコマンドを実行する この要件を満たす簡単な方法は、以下のようなコードでWebプロセスから外部コマンドを
WordPressには、いくつかのプログラム言語が利用されています。 具体的には以下のような言語です。 PHP HTML CSS JavaScript(jQuery) 細かなことを言えば、他にも使用されているものはありますが、ユーザーが編集するものと言えば大体はこの4つです。 今回は、これら4つの言語のコードを綺麗に整形してくれるツールの紹介です。 コード整形ツールとは コード整形ツールとは、書き方の定まっていないプログラムコードなどを、記法を統一して綺麗に書き直してくれるツールです。 WordPressテーマ作成や、カスタマイズで、コードをググッてよそからコピペ編集で使うときなどに、自分に合った記法に変換して使えます。 例えば、以下のようなことを、まとめて行いたい時に使うと、手動でやるより編集時間を大幅に短縮できます。 コードに適切なインデントを自動で設定する インデントをタブからスペー
何をする gem なのか Rack から PHP のセッションファイルを読み書きする gem であります。既存の gem にも似たような乃があるのですが、デシリアライズをまじめにやってなかったり、マルチバイト食わせると死んだり、read-only だったりしたので自分で書きました。 Shinpeim/rack-session-php 今後の予定 rails に載せるためのやつ作る -> できた。 php_session-rails on github php_session-rails on rubygems ニッチなアレですが、もしもphpアプリケーションを on the fly で rails に載せ変えていくような事例があれば是非お使いください。Enjoy!(はたしてそのような闇の深い感じの案件を Enjoy できるのかどうかはまた別の話)
PHPといえば「ほーむぺーじ」を作るためにあるような言語なわけだが、何故か自分はコマンドラインアプリを作る機会が多い*1ので、引数のパースについて少し考えてみる。 対象ファイルとスイッチのオンオフ程度なら$argvを回しながら自前でパースしても事足りるんだけど、オプションに引数が付いたり省略可能だったりと複雑になってくると何らかのライブラリを頼った方が圧倒的に簡単になる。 選択肢 コマンドラインの解析にはいくつかの方法がある。 標準のgetopt()関数 PEARのConsole_Getopt PEARのConsole_GetoptPlus PEARのConsole_Getargs PEARのConsole_CommandLine Zend FrameworkのZend_Console_Getopt メジャーなところだとざっとこんなもん。 PEARの4つについてはPEAR :: Manua
PHPを愛する試みというものを個人的にやっている PHPを愛する試み PHPを愛する試み 〜調教編〜 今回は、self:: parent:: static:: 遅延静的束縛について図で整理してみた。 スコープ定義演算子 (::) まず「::」について。これはスコープ定義演算子という。マニュアルには以下のようにある。 スコープ定義演算子 (::) スコープ定義演算子 (またの名を Paamayim Nekudotayim)、 平たく言うと「ダブルコロン」は、トークンのひとつです。 static, 定数 およびオーバーライドされたクラスのプロパティやメソッドにアクセスすることができます。これらの要素をクラス定義の外から参照する際には、 クラスの名前を使用してください。PHP 5.3.0 以降では、変数を用いてクラスを参照することも可能です。 変数の値に (self や parent、 stat
PSR-0, 1, 2を日本語に翻訳してみました はじめまして。onoと申します。 このたび唐突にPHP-FIGのPSR内容を日本語に翻訳してみました。 1. PSRとは 一言で表すと、PHPの標準コーディング規約です。 それならもう色々あるよねってお話なんですが、 PHP-FIG(PHP Framework Interop Group)というグループには各フレームワークだったりライブラリだったりの関係者が参加しています。 SymfonyだったりZFだったりPEARだったり。 そんな豪勢なメンバーが共通点を見つけながら、ルールを組み立てていきましょう!という背景のもと、共通内容を整理した規約集がPSRということになります。 1-1. 公開します 今回PSR翻訳してみましたが、様々なツッコミを恐れずに公開することにします。 PSR-0 – オートローディング規約(原文) PSR-1 – 基本
Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su
PDOStatement::bindParam (PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0) PDOStatement::bindParam — 指定された変数名にパラメータをバインドする public PDOStatement::bindParam( string|int $param, mixed &$var, int $type = PDO::PARAM_STR, int $maxLength = 0, mixed $driverOptions = null ): bool 準備された SQL ステートメント中で、 対応する名前もしくは疑問符プレースホルダにパラメータをバインドします。 PDOStatement::bindValue() と異なり、 変数は参照としてバインドされ、PDOStatement::execute() がコ
mb_strlen()関数は、日本語などのマルチバイト文字列の文字数をカウントする関数ですが、気をつけて使わないと思わぬバグの原因になってしまうことがあります。 <?php $str = '日本語にほんご'; var_dump(mb_strlen($str)); ?> このスクリプトを実行すると、多くの場合は int(7) と、正しい結果が表示されますが、環境によっては int(12)やint(9)など、変な値が表示されてしまう場合があります。 これは、PHPの内部エンコーディングが文字列のエンコードと異なっている時に 起こります。 <?php $str = '日本語にほんご'; var_dump(mb_strlen($str, 'SJIS')); ?> というように、mb_strlen()関数の第2引数に$strの文字エンコードを指定す ると、PHPの内部エンコーディング設定に関わらず正
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く