タグ

PHPに関するpaselaのブックマーク (264)

  • PHPにおけるシンボリックリンクを使ったデプロイの危険性について(「realpath_cache」和訳)

    2016/10/31 PHPにおけるシンボリックリンクを使ったデプロイの危険性について(「realpath_cache」和訳) PHP サーバーサイド この文書は@julienPauliさんによる記事「realpath_cache」の日語翻訳です。元々は@gilbiteさんがKLab社内向けに翻訳したものでしたが、日語では見たことがない指摘を含んでおり今でも有用だと考えたため、@julienPauliさんの了解を取った上で@hnwが修正・追記して公開するものです。 はじめに PHP に realpath_cache_get(), realpath_cache_size() という関数があることをご存じでしょうか? また、php.ini に realpath_cache から始まる設定項目があることは? realpath cache は知っておきたい極めて重要な概念です。 特に、コードの

    PHPにおけるシンボリックリンクを使ったデプロイの危険性について(「realpath_cache」和訳)
    pasela
    pasela 2016/11/01
  • PHPのround関数とは一体なんだったのか - hnwの日記

    (7/3 14:05追記)Javaに関する記述について誤認があったので盛大に書き換えました。Java 6、Java 7、Java 8それぞれで実装が変わっていたようです。 (7/13 23:55追記)記事中ではroundを四捨五入と言い切ってしまっています。これは筆者がC99のroundを基準に考えているためですが、言語によっては偶数丸めになっているround関数も珍しくありません。ご注意ください。 PHPのround関数について、ネット上で次のような記述を見つけました。 PHP 四捨五入の計算を間違える唯一の言語として畏れられていましたが、そのバグは治っているかもしれません(治ってないかもしれません) 主要なプログラミング言語8種をぐったり解説 - 鍋あり谷あり 各言語を面白おかしく紹介する内容とはいえ、ずいぶん雑な理解だなーという印象です。ゆるふわな話だけでPHPがdisられ続けるの

    PHPのround関数とは一体なんだったのか - hnwの日記
    pasela
    pasela 2016/07/04
  • nubem.com - このウェブサイトは販売用です! - nubem リソースおよび情報

    このウェブサイトは販売用です! nubem.com は、nubemに関する情報用の最新かつ最適なソースです。一般的興味の問題に関連するトピックもここから検索できます。お探しの内容が見つかることを願っています!

    nubem.com - このウェブサイトは販売用です! - nubem リソースおよび情報
    pasela
    pasela 2015/09/16
  • 昔の) PHP が誇った最高の機能 register_globals の真実、そして未来へ

    YAPC::Asia Tokyo 2015 Lightning Talks Day 1 http://yapcasia.org/2015/talk/show/9c87ba50-3c17-11e5-9f50-22d57d574c3a

    昔の) PHP が誇った最高の機能 register_globals の真実、そして未来へ
  • PHP による hello world 入門 | 東北ギーク

    知る者は言わず、言う者は知らず — 老子 世界で最も有名なプログラムの 1 つに、 hello world というものがあります。 <?php echo 'hello, world'; 出力先に対して「hello, world」という 12 字を書き込むだけの単純なプログラムで、プログラミング言語やライブラリの利用例を最小限の形で示すものです。 この記事ではメジャーな Web プログラミング言語の 1 つである PHP 処理系が、hello world をどのように実行するのかについて、簡単に解説します。 以下の 4 節で構成されています。 「PHP スクリプト実行の大体の流れ」は実行時の概略を箇条書きでまとめたものです。 「SAPI」では、PHP 処理系の起動のされ方についての基礎知識を解説します。 「Zend Engine とオペコード」は PHP 公式処理系の仮想マシンの命令と、PH

    PHP による hello world 入門 | 東北ギーク
    pasela
    pasela 2015/07/27
  • それでも僕が、エラー制御(抑制)演算子"@"を使う理由 - noopな日々

    PHP プログラマが "@" を使うべきでない 5 つの理由 - 肉とビールとパンケーキ by @sotarok というエントリーを読みました。このエントリー自体は有意義なんで同意なんですが、"@"を使うべきでないなんてコンセンサスができたら残念なので、一応、逆説を提示しておきます。僕が書いても影響力なんてないですけど、一応、言うべきことは言っとこうかと。 始める前に、質的なところ 終的に$qに入るものが同じであることと、コードとして同じ意味であるかは、別じゃないでしょうか。 が一番質的な話で、それ以上の話ではありません。 つまり、発生する可能性があるとわかっているエラーを表示させないことと、エラーがあるかどうかをチェックして適切に処理をするのかは、意味が全然違うという意味です。 http://d.hatena.ne.jp/sotarok/20090721/1248112106 あるコ

    それでも僕が、エラー制御(抑制)演算子"@"を使う理由 - noopな日々
    pasela
    pasela 2015/06/24
  • PHPにないセキュリティ機能

    PHPカンファレンス関西2015での私のセッション「PHPに無いセキュリティ機能」のスライドです。 何が無いのか、知っていれば対応できます。 何が問題になっているのか、知っていれば対応できます。 セキュリティ対策は職人技敵(脆弱性対策をコード中に散りばめ、全体を把握しないと安全にできない作り方)ではなく、CERT/SANS/OWASPが推奨するセキュリティ対策を行い、エンジニアリング的(科学的、体系的な作り方)を行う方が簡単かつより安全、高品質なアプリケーションを作れます。 PDFをダウンロードしたい方はブログをご覧ください。 http://blog.ohgaki.net/missing-security-related-parts-of-phpRead less

    PHPにないセキュリティ機能
  • PHPで日付時刻の処理を書くなら Carbon がおすすめ

    どうも、筋トレにハマっているたきゃはしです。 日はPHPにおける日付時刻のライブラリについて書いていきたいと思います。 突然ですが、日付や時刻が絡む処理って意外とやっかいだと思いませんか?おそらく皆さんもいくつか思い当たるフシがあるかと思いますが、そんなやっかい事も Carbon(カーボン)を使えば解消できるかもしれません! Carbon – A simple PHP API extension for DateTime. Carbon とはPHPのDateTimeクラスを継承して拡張された日時操作ライブラリです。 「Carbonってどうなの?流行ってるの?」という方向けに予め補足致します。 Carbonはすでに人気のフレームワークに統合されていたり、GitHubで☆3000に迫る評価もありますのでDateTimeライブラリとしてデファクトになるんじゃないかと予想できます。 ではインスト

    PHPで日付時刻の処理を書くなら Carbon がおすすめ
    pasela
    pasela 2015/05/14
  • Laravel5を業務で一通り使ってみた感想 - nazolabo

    2ヶ月くらい使ってみたけど、悪くはないんだけど、なんか最近持ち上げられすぎてる気がするので、気になったところを書き出してみる。 あくまで個人的な感想なので、マサカリ投げるのは歓迎。 概要 Noticeを含むエラーが全て例外になる 最近のフレームワークは大体やってそうだけど、エラーを出すと全て例外を出すので、不要にcatchしなければ問答無用で落ちる。これにより、NOTICE出しっぱなしで何となく動いているコードを殲滅できる。標準にしてほしい。Fatalも例外として扱ってくれるが、Fatalを取れるのはプログラム終了後なので、特に意味はない。出力が同一フォーマットになるくらい。 ちなみに自前で実装するにはErrorExceptionのページに書いてあるので、この通り実装しよう。簡単である。 ファイルの配置が自由 composer autoload使っていればどれでもそうなんだけど、Model

    Laravel5を業務で一通り使ってみた感想 - nazolabo
  • PHPのJSONライセンス問題が一応決着 - hnwの日記

    2012年頃に、PHPのJSONエクステンションのソースコード中に次のようなライセンス文言が含まれていると話題になりました。 The Software shall be used for Good, not Evil. これはJSONライセンスと呼ばれるライセンスの一文です。「このソフトウェアを良いことに使うのはいいけど、悪いことには使っちゃダメ」といったところでしょうか。 これはフリーソフトウェアの定義に反しており*1、各種LinuxディストリビューションでJSONエクステンションを配布できないことになるため、ちょっとした騒動になったというわけです。 稿ではこのJSONライセンスへの対応が現在どうなっているかを紹介します。 各種Linuxディストリビューションの対応 PHPのJSONエクステンションはjson_encode()やjson_decode()などの重要な関数を提供するエクス

    PHPのJSONライセンス問題が一応決着 - hnwの日記
  • Blackfire, a new Profiler for PHP Developers |Articles - Fabien Potencier

    I've always been fascinated by debugging tools; tools that help you understand what's going on in your code. In the Symfony world, the web debug toolbar and the web profiler are tools that gives a lot of information about HTTP request/response pairs (from exceptions to logs, submitted forms and even an event timeline), but it's only available in development mode as enabling those features in produ

    pasela
    pasela 2015/04/16
  • レガシーPHP改善日記シリーズ - komagataのブログ

    「FRINGE/フリンジ」の J.J. エイブラムスと「ダークナイト」の脚家ジョナサン・ノーランが贈るわけではない、IT業界のタブーに切り込んだサスペンス実話。 (私人は真剣にレガシーPHPに取り組んでおります。) シーズン1 エピソード1 エピソード2 特別編1 レガシーPHPプロジェクトあるある エピソード3 特別編2 phpプログラマーの募集 エピソード4 エピソード5 エピソード6 エピソード7 エピソード8 特別編3 PHPMatsuri2012 エピソードLAST シーズン2 エピソード0 エピソード1 エピソード2 エピソード3 番外編1 ピクルス原理を誤用(応用)する エピソード4 エピソード5 エピソード6 PHPの落とし穴 PHPの落とし穴1 ツール レガシーPHP診断 レガシーPHP診断 - みんなの診断結果 レガシーPHP改善・コンサルティングはこちらから承って

    pasela
    pasela 2015/02/16
  • PHP7の現状

    (Last Updated On: 2018年8月13日)PHP7が今年の秋リリースされる予定です。まだまだ多くの変更が行われる予定ですが、現状を簡単にまとめてみたいと思います。代表的な物のみ取り上げています。 ご存知ない方の為に書いておきます。現在リリースされているPHPPHP5です。次のPHPPHP7になり、PHP6はリリースされません。PHP6をUnicodeをネイティブ文字列としてサポートするバージョンとして開発されましたが、文字エンコーディングチェックを内部で自動的に行おうとするなど、無駄が多く遅いため破棄されました。(文字エンコーディングのバリデーションは来アプリでするものです)このため、PHP6はスキップされ次のPHPPHP7になります。 追記:PHP7.0は既にリリースされています。概要はPHP 7.0の概要・新機能・互換性、詳しくはマイグレーションドキュメントをご

    PHP7の現状
    pasela
    pasela 2015/01/26
  • YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情

    YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情

    YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
    pasela
    pasela 2015/01/13
    “ ”
  • 第56回PHP勉強会@関東で PHPUnit について話してきた | Born Too Late

    最近 HTML5 化した Slideshare ですが, エラーで表示できないスライドが多すぎてまともに閲覧できないようです. この記事に掲載している Flash 版は今まで通りの問題なく表示できるのですが... スライドが完成したのが勉強会への出発 15 分前で, 通しで練習することすらできず, 発表はかなりひどいものとなっていまいました. 最低限, スライドの流れぐらいは頭の中に入れて発表すべきですね… スライドだけ見てわかるような作りにはなっていないので, 以下で補足したいと思います. ただし, 序盤は省略し, 論となる書法編とパターン編についてのみとなります. それぞれ該当するスライド番号も付記してありますので, よければご活用ください. 書法編 1: ヘルパーメソッドを使う (25 ~ 30) テスト対象のオブジェクト, それを生成するのに必要な依存オブジェクトの生成には, ヘ

    第56回PHP勉強会@関東で PHPUnit について話してきた | Born Too Late
  • エリック・エヴァンスのドメイン駆動設計に沿ってSymfony2でユーザー管理アプリを作ってみた - sifue's blog

    あけましておめでとうございます。 去年の暮からエリック・エヴァンスのドメイン駆動設計という5200円、500ページもするを購入して読み始めた自分です。 エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践) 作者: エリック・エヴァンス,今関剛,和智右桂,牧野祐子出版社/メーカー: 翔泳社発売日: 2011/04/09メディア: 大型購入: 19人 クリック: 1,360回この商品を含むブログ (129件) を見るあまりに勿体無かったので試しにこのドメイン駆動設計の設計思想にそって、簡単なアプリをSymfony2で作ってみました。 実際に作られたサイトは、 http://www.soichiro.org/sf こんな感じです。 id: test1@test.com pass: test1 でログインできます。(ユーザー作るだけなら

    エリック・エヴァンスのドメイン駆動設計に沿ってSymfony2でユーザー管理アプリを作ってみた - sifue's blog
    pasela
    pasela 2015/01/13
  • 『例えば、PHPを避ける』以降PHPはどれだけ安全になったか

    この記事はPHPアドベントカレンダー2014の22日目の記事です 。 2002年3月に公開されたIPAの人気コンテンツ「セキュアプログラミング講座」が2007年6月に大幅に更新されました。そして、その一節がPHPerたちを激しく刺激することになります。 (1) プログラミング言語の選択 1) 例えば、PHPを避ける 短時日で素早くサイトを立ち上げることのみに着目するのであれば、PHPは悪い処理系ではない。しかし、これまで多くの脆弱性を生んできた経緯があり、改善が進んでいるとはいえまだ十分堅固とは言えない。 セキュアプログラミング講座(アーカイブ)より引用 「PHPを避ける」とまで言われてしまったわけで、当然ながらネット界隈では炎上を起こし、現在はもう少しマイルドな表現に変わっています(参照)。 稿では、当時のPHPの状況を振り返る手段として、この後PHPセキュリティ機能がどのように変化

  • PsySH

    Stop die()ing all the time PsySH can be used as an interactive debugger, much like JavaScript's debugger statement, saving you from endless var_dump() and die() iterations. Just drop this line in where you'd like to have a breakpoint: eval(\Psy\sh()); Auto[tab][tab]Complete PsySH has tab completion for variable names, functions, classes, methods, properties, and even files! Just start typing, then

    pasela
    pasela 2014/06/06
  • PHPをインタラクティブに実行する PsySH

    PHPの関数やコード例の動作確認をどのように行っていますか? 最も基的な方法は変数や関数の戻り値を逐次、echoで出力する方法でしょう。 しかしこの方法では何度もコード編集と実行を繰り返す必要があり非効率です。デバッガやIDEの使用も解決策の1つですが、大げさすぎたりパフォーマンスの問題がある時もあります。 一方でRubyの世界を見てみるとirbやpryを使ってコンソール上でリアルタイムにコードを試す姿が一般的です。 今回はPHPで対話的なデバッグやコード実行を行えるPshSHを紹介します。 PsySH 従来の手法 php -a PHPには標準で対話シェルモードがPHP5.1以降から搭載されています。 しかしこの機能を利用するには--with-readline付きでPHPがコンパイルされている必要があります。 readlineが利用できない場合はインタラクティブシェルの変わりにインタラク

    PHPをインタラクティブに実行する PsySH
    pasela
    pasela 2014/06/06
  • Zephir Website

    Enhance your PHP frameworks/libraries by making them Faster Better More Reliable Type System Zephir combines static and dynamic typing in a friendly language that is compiled down to machine code using the industry standard compilers. Memory safety Despite being a compiled language, it does not allow you to use pointers, it provides a garbage collector to avoid memory leaks and more. Compilation m

    Zephir Website
    pasela
    pasela 2014/05/30