タグ

phpに関するshimanpのブックマーク (128)

  • なぜ出力時のHTMLエスケープを省略してはならないのか - Qiita

    メリークリスマス! 週末もPHPを楽しんでますか? ところでWebセキュリティはWebアプリケーションを公開する上で基礎中の基礎ですよね! メジャーな脆弱性を作り込まないことはWeb開発においては専門技術ではなく、プロとしての基です。 中でもXSS (Cross-Site Scriptingクロスサイトスクリプティング)やインジェクションについての考慮は常に絶対に欠いてはならないものです。 現実にはプログラミングには自動車のような運転免許制度がないため、自動車学校に通わず独学で公道に出ることができてしまいます。つまりは基礎知識がないままにWebプログラマとして就職したり、フリーランスとして案件を請けることも現実には罷り通っています。それは一時停止標識も赤信号も知らずにタクシー営業しているようなものです。 このような事情により、体系的な理解のないWeb開発初心者は (時にはn年のキャリアを

    なぜ出力時のHTMLエスケープを省略してはならないのか - Qiita
  • PHP Web Application Performance Tuning

    https://phperkaigi.jp/2021

    PHP Web Application Performance Tuning
  • SPA(Single Page Application)の学習、そこに高度なスキルなどいらない - Qiita

    前書き 普及しないSPA これだけ時代が進んだのに、Webでは未だにガチャガチャページが切り替わるシステムが多い。SPAの普及を阻止しようとしている勢力がいるとしか思えない状況だ。「そんな悪の組織みたいな勢力がいるんだね、へぇしょっかぁ」とかギリギリのラインでネタをぶち込んでも仕方が無い。 今回はWebシステムの基といえる掲示板を作成し、SPAの動作について確認していきたい Webアプリケーションとは九割九分、掲示板の変形である Webアプリケーションの基掲示板だ。DBからデータを抽出し出力、データを受け取りDBに保存、保存後の状態を再出力。たったこれだけのことだが、あらゆるシステムで利用される基なのである。世の中のシステムは掲示板をベースにデータの種類を増やしたり、カテゴリ分けがあったり、ほとんどがちょっとした派生でしかないのだ 掲示板を作ることができれば、大抵のシステムはなんと

    SPA(Single Page Application)の学習、そこに高度なスキルなどいらない - Qiita
  • PHP と Goutte ではじめる超絶簡単クローラー入門 ログイン編 - Qiita

    このへんまで来たら準備完了ですね。 みなさんバッチリ mixi にログインしてるかと思うのでログアウトしておいてください。 ねらいをさだめる ログアウトすると https://mixi.jp/ つまりトップページにリダイレクトされたかと思います。 (LINE友達募集コミュニティって時代を感じますね!) たいせつなのはこちらです。 ログインフォーム。 こちらにメールアドレスとパスワードを挿入して submit したいわけです。 <?php require_once __DIR__ . '/vendor/autoload.php'; use Goutte\Client; $cli = new Client(); $top = $cli->request('GET', 'https://mixi.jp'); $loginForm = $top->filter('form')->form();

    PHP と Goutte ではじめる超絶簡単クローラー入門 ログイン編 - Qiita
  • PHP 7のパフォーマンスが高い理由

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    PHP 7のパフォーマンスが高い理由
  • PHP 5.4.4から==の挙動が一段と難しくなりました - hnwの日記

    PHPの==は両辺を適当に型キャストしてから比較するような演算子です。この型キャストの規則は難解すぎる上にドキュメントも不十分なため、PHPプログラマでも完璧に理解している人はほとんど居ないくらいの印象です。バグの原因になりかねないため、なるべく==を使わないようにしているPHPプログラマも多いはずです。 ところで、この==演算子の挙動がPHP 5.4.4から変更されていることはあまり知られていません。稿ではこの内容を紹介します。 Bug #54547 の騒動 まずはこの仕様変更の経緯を紹介します。 2年ほど昔、Hacker Newsで2^63付近の整数に対応する文字列をPHPで比較したときの挙動がおかしいというスレッドが盛り上がったことがありました。具体的には、PHPでは「'9223372036854775807' == '9223372036854775808'」がtrueになるとい

    PHP 5.4.4から==の挙動が一段と難しくなりました - hnwの日記
  • Symfony の学びかた

    プログラマとして Symfony 歴は 2 年くらい(フルタイムではない) Symfony1 時代はほぼ知らない Java, Ruby, JavaScript, elisp, PHP github 上では JavaScript プログラマ? 代表作は power-assert Why Symfony? なぜ Symfony を選んだか 「コードがしっかりしている」 メンテ方針がしっかりしている(長期サポート, 後方互換性) DIベースの疎結合設計で自分でアーキテクチャを進化させやすい 中長期的な生産性が高まることを期待できる

    Symfony の学びかた
    shimanp
    shimanp 2014/04/22
  • 16の言語と57のフレームワークを比較したベンチマークが凄い

    いつの時代もより高速に動作するフレームワークや言語に対する関心は高いものですが、そんな疑問に答えるWeb Framework Benchmarksの最新版が公開されています。こちらのベンチマークはテスト用のコードや環境がオープンソースになっており16の言語(C C# Clojure D Erlang Go Groovy Haskell Java JavaScript Lua Perl PHP Python Ruby Scala)と57のフレームワークについて最適な実装が集められてテストされているという点で一般性があります。また実行環境もEC2と実マシンの2種類をそれぞれ実行している点も興味深いです。 気になるテスト結果のうち特に複雑度の高いデータベースから複数件のデータを取得してHTMLページとして出力した場合の結果は下記のとおりです。 堂々のトップに輝いているのはServletで最大で1

    16の言語と57のフレームワークを比較したベンチマークが凄い
  • PHP の配列を使った手品とその種明かし

    PHP Advent Calendar 2013 に参加しています。昨日の @yando さんから引き継いで2日目。 以前 PHP を使った手品を人前でやったら、 会場から「えっ」「えっ?」「ええっ!?」 という反応があって楽しかったので書いてみます。 演じ方 まずはこちらをご覧ください。 これを実行したらどうなるでしょうか。 できれば、答え合わせをする前に 上記コードの右下にある view raw から keys.php をダウンロードして実行してみてください。 普通に考えたらこうなると思います。 Array ( [key] => value_7 ) では実行してみますね。 % php keys.php Array ( [key] => value_0 [key] => value_1 [key] => value_2 [key] => value_3 [key] => value_4

    PHP の配列を使った手品とその種明かし
    shimanp
    shimanp 2013/12/03
  • ソースコード20万行の大規模サイトのPHPを5.1から5.4に上げるためにやったことまとめ · DQNEO日記

    所要期間 着手しはじめたのが2010年12月ごろ、完了したのが2013年9月だったので何と3年近くかかったことになります。 長引いた原因は、日々の機能追加や運用をしながら孤独に片手間で細々とやってたからです。(単純に人手不足とも言う) また、PHPバージョンアップと同時にCentOSサーバを5から6にあげることにしたのでサーバ再構築のための工数も含まれています。 後半は仕事仲間が増えてその人が専業でバージョンアップ作業をやってくれたのでだいぶ楽できました。 それと専任のテスターさんたちにも参加していただいたので番で大きなトラブルなく完了することができました。 感謝感謝です。 サーバ入れ替え作業が終わってPHP5.1の入った古いサーバを削除したときの、まさに「技術的負債」を返済し終わった瞬間の、あのスッキリ感、もう言葉にはできません。 終わってみてこの件に関するRedmineのチケットを数

    ソースコード20万行の大規模サイトのPHPを5.1から5.4に上げるためにやったことまとめ · DQNEO日記
  • PHPのジェネレータはイテレータより速い - hnwの日記

    先日の記事「PHPのジェネレータの実装を調べてみた」で僕は次のように書きました。 GeneratorクラスはIteratorインターフェースを実装しており、対応するPHPメソッドを持っています。また、Cで実装した場合のみ指定できるイテレータ関数も実装しています。このように両方が指定されている場合、foreachループではCの関数が呼ばれ、イテレータメソッドを明示的に指定した場合はPHPメソッドの方が呼ばれます。 ところで、イテレータに対応するPHPメソッドとC関数となぜ2つとも実装する必要があるのでしょうか。実は、PHPメソッドの方だけ実装すれば正常に動作します。C関数を実装する理由は速度面のメリットからだというのが僕の理解です。C関数は関数ポインタで単に呼び出せるのに対し、PHPメソッドの呼び出しは命令実行器の状態保存・復元の必要があるなど、呼び出しのコストがやや高いのです。 PHPのジ

    PHPのジェネレータはイテレータより速い - hnwの日記
    shimanp
    shimanp 2013/11/05
  • いつまでPHPerはMVCを間違い続けるのか…? - どうにもならない日々@mkkn

    愚痴です。 やはりお前らのMVCは間違っている http://www.slideshare.net/MugeSo/mvc-14469802 これ45k Viewあって、はブも600あって、Sep 26, 2012の投稿だからもおう1年以上前の話。つーかそれの波及記事もいろいろあってもう既に十分語り尽くされている、はずなのに… なぜか、未だにfat controller もうね。コード見るのが辛いんよ。つーか感覚的に分かりそうなもんじゃん。処理のエントリポイントがこんなになってていいのかなぁ?って。 改修案件でさ、コードどっから参照するよ?コントローラでしょ?んでさーコード調べるぞ!!ってなった時、そのコード見て、、、ため息出るでしょ。ひと目でわからんでしょ。 コントローラなんて,どのモデル読んでてどのview使ってるか、それだけで十分じゃん。パラメータの処理はルーティングでやればいいじゃん

    いつまでPHPerはMVCを間違い続けるのか…? - どうにもならない日々@mkkn
  • 本当に怖いパフォーマンスが悪い実装 #phpcon2013

    9. 問題の実装 9 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <?php class BlackListDB { const DBPATH = "/tmp/db.gdbm"; public function isBlock($id) { $dbh = dba_open(self::DBPATH, "r", "gdbm"); if ($dbh === false) { return null; } $ret = dba_exists($id, $dbh); dba_close($dbh); return $ret; } } 10. 問題点 10 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <?php class BlackListDB { const DBPATH = "/tmp/db.gdbm"; publ

    本当に怖いパフォーマンスが悪い実装 #phpcon2013
  • cmmntr.com

    This domain may be for sale!

  • PHP5.5新機能「ジェネレータ」初心者入門

    PHP5.5の新機能「ジェネレータ(Generator)」について、「それって何?」「どううれしいの?」「何に使えるの?」の3つを初心者向けに解説。動画 http://www.slideshare.net/kwatch/php55Read less

    PHP5.5新機能「ジェネレータ」初心者入門
    shimanp
    shimanp 2012/09/21
  • これは凄い。JavaScriptで作られたPHP VM·php.js MOONGIFT

    php.jsはJavaScriptで作られたPHP VMです。PHPコードをJavaScriptに変換して実行します。 世の中には色々変わったことを考える人がいます。Webブラウザでデフォルトで実行できるプログラミング言語がJavaScriptだけなんて許しがたい、そう考えたPHPプログラマーが生み出したのがphp.jsです。その名の通り、PHPの実行エンジンをJavaScriptに実装したというとんでもないソフトウェアになります。 確かに実行できています。PHPのコードからJavaScriptに変換を行っているようです。 配列、クラスさらにvar_dumpまで実装されているのが興味深いです。 かなり突っ込んだPHPの処理もできている模様です。これは面白い。 ダブルクオートの中に変数を入れて普通に出力できているのが興味深いです。 php.jsではPHPのコードがそのまま実行できます(もちろ

  • 6分でわかる最近のPHP ― 2012夏

    さて夏がやってきました。夏と言えばPHPということで、昨年に引き続き、最近のPHP事情をご紹介。 1. PHP5.4リリース PHP5.4が2012年3月にリリースされました。 Traits や Short array syntax(配列の短縮構文)、array dereferencing(foo()[0]) などのPHP言語拡張、PHPコマンドで起動するビルトインサーバ、そしてパフォーマンスの改善など大きな変更が加えられています。 言語自体の機能追加も注目ですが、ビルトインサーバは多くの人にとってメリットになるでしょう。これを使えばPHPアプリケーションの動作確認のためにApacheやnginxなどのhttpdサーバを自分のPCに入れる必要はありません。 下記のようなコマンドを打つだけで、ビルトインサーバが起動します。新しいフレームワークやライブラリ、アプリケーションを試してみたい時に手

    shimanp
    shimanp 2012/08/03
  • 40分濃縮 PHP classの教室

    PHPカンファレンス関西2012で使用したスライドです。完全な内容は下北沢で開催した際のスライドと動画を御覧ください。Read less

    40分濃縮 PHP classの教室
    shimanp
    shimanp 2012/05/16
  • 開発中のiPhoneアプリを自前サーバで配布する方法 - ku-sukeのブログ

    OTA配布が手軽にできるオープンソースのPHPスクリプト書きました。TestFlightが様々なポリシーで使えない方向けに書きました。 ku-suke/SimplePHPAdhocServer · GitHub これはなに? USBケーブルを繋がずに、開発中のアプリを実機に配布できるPHPスクリプトです。自前のサーバに設置してご利用ください。developmentプロファイルでもdistributionプロファイルでもenterpriseプロファイルでも使えます。enterprise以外はあくまでUDID登録済みの実機だけです。 動作確認というか必要条件 PHP 5.2以降 MySQL 5.0以降 USBで実機にアプリをインストールすることが出来る環境(Xcode/Provisioning profile etc) ライセンス 個人で書いたのでMITで自由に使えるよ!同梱ライブラリのライセ

    開発中のiPhoneアプリを自前サーバで配布する方法 - ku-sukeのブログ
  • 最近 PHP のセットアップ時にいつもやってる設定 | バシャログ。

    レーザー治療までしたのにくしゃみ出まくってるんですけど、いったい何なんですか。どうもこんにちは nakamura です。 PHP-5.3.x 系もだいぶ浸透してきた今日この頃ですが、今日はここ最近新規にウェブサーバを立てる際にいつもデフォルトでやっている PHP 周りの設定をまとめてみました(よくよく考えたら PHP-5.3.x 系とかあんまり関係ないけど)。環境は CentOS 5 or 6 の PHP-5.3.x です。remi リポジトリを使って最新版の PHP を入れてます。 /etc/php/php.ini 毎回さわっているのは大体この辺ですね。他はサイトの仕様にあわせて適宜。 [PHP] expose_php = Off [Date] date.timezone = Asia/Tokyo セッションの保存先を memcached に セッションの保存先はデフォルトで memca

    最近 PHP のセットアップ時にいつもやってる設定 | バシャログ。