タグ

phpに関するbrendonのブックマーク (51)

  • [PHP]pecl,phpize,extensionという単語を見て頭痛がするあなたへの処方箋 · DQNEO日記

    はじめに PHP Extension, pecl, phpize, php-config, *.so これらの単語を見て頭が頭痛になったことはありませんか? pecl installがコケてm9(^Д^)プギャーってなったことはありませんか? 私はあります。 しかしPHPの環境構築をしようと思ったら、PHP Extensionは避けては通れないテーマです。 ひとつひとつの仕組みの裏側を理解すれば怖いことはありませんので、いちど根っこから掘り下げて勉強しておきましょう。 2つに分断されたPHPの世界 PHPの世界では、ライブラリ配布方式が2つの世界に分断されてしまっています。 ライブラリの種類 配布サイト インストーラ 後者の「C言語で書かれたライブラリ」のことを「エクステンション」といいます。実体は拡張子.soファイルです。 php.iniの末尾に"extension=memcache

    brendon
    brendon 2018/07/19
  • 選定した技術が1年で死んだ話 | そど

    今年の夏頃から、特にサービスとして出すわけではなく、社内で使っているシステムのリプレースを行う事になりました。主な目的はレガシーすぎる設計をある低度モダンにする事、そして他のシステムと連携出来るようにする事、です。 対象のシステム 見積書や請求書などを管理・発行している。機能はそれなりに多いがUI操作はFormベース、テーブルタグで諸情報を表示するシンプルな物。ノンフレームワークで1画面1PHPファイルな古き良き時代のコード。おそらく10年ぐらい?稼働している。当初はPHP 5.1、PostgreSQL 8.x系だったが、現在はPHP 5.6とPostgreSQL 9.6で稼働しています。 その他の社内システム かつてはノンフレームワークだったり、太古のバージョンのCakePHPだったり、PHPが4系だったりしたが、概ねCodeIgniter 3系最新版 + PHP 5.6~7.1 + P

    brendon
    brendon 2018/03/14
  • テンプレートエンジンのくせに最近のPHPはオブジェクト志向やらDIやらイキり始めた件 - JavaScriptをがんばるブログ

    ※2017/05/29現在Repositoryの章までしか聞けていません。聞いている際に浮かんだインスピレーションが揮発しないよう永続化する為に書いた記事です。 php-genba.shin1x1.com まさか日語でこの内容を聞けるコンテンツがあるとは思わなかったです。 これは英語をマスターすれば Sound of Symfony The Laravel Podcast Ruby on Rails Podcast JavaScript Air devchat.tv などのPodcastからより多くの興奮を得られる事を意味します。 プログラミング経験3年、細かい修正ばかりで設計レベルの経験値が全くない自分ですが、各章について以前から個人的に思っていた事、お三方の知見からインスピレーションを得た内容を書き残します。 1. DI 「依存性の注入(Dependency Injection)」と

    テンプレートエンジンのくせに最近のPHPはオブジェクト志向やらDIやらイキり始めた件 - JavaScriptをがんばるブログ
  • teratailに投稿されたメールフォームにCSRF脆弱性が残存した理由 | 徳丸浩の日記

    teratailに以下のような投稿がありました。 PHPでメールフォームを作成したので、脆弱性がないかアドバイスいただけないでしょうか。 エンジニアでもなければ、PHPもろくに書けない雑魚ですが、「php メールフォーム 作り方」でググって表示されるサイトを見ると、「んんんんん???」と思うところがあります。 これらを参考にしたり、コピペする方は、記述されているコードの良し悪しは判断できないかと思います。 そのような方々が参考にできるメールフォームを作りたいという思いで、調べて作りました。 周りに書いたコードを確認してもらえる人もいないので、皆様からのアドバイスがほしいです((_ _ (´ω` )ペコ 【PHP】作成したメールフォームに脆弱性がないか、アドバイスもらえないでしょうかより引用 どれどれ…と確認すると、トークンのチェックが入っているにも関わらずクロスサイト・リクエストフォージ

  • GHOST脆弱性を用いてPHPをクラッシュできることを確認した

    GHOST脆弱性について、コード実行の影響を受けるソフトウェアとしてEximが知られていますが、PHPにもgethostbynameという関数があり、libcのgethostbyname関数をパラメータ未チェックのまま呼んでいます。そこで、PHPのgethostbynameを用いることでPHPをクラッシュできる場合があるのではないかと考えました。 試行錯誤的に調べた結果、以下のスクリプトでPHPをクラッシュできることを確認しています。CentOS6(32bit/64bitとも)、Ubuntu12.04LTS(32bit/64bitとも)のパッケージとして導入したPHPにて確認しましたが、phpallで確認した限りPHP 4.0.2以降のすべてのバージョンのPHPで再現するようです。なぜかPHP 4.0.0と4.0.1では再現しませんでした。 <?php gethostbyname(str_

    brendon
    brendon 2015/02/07
  • phpunitでprivateなstatic関数をテストする - かけるヒトからできるヒト

    最近新規開発のシステムでテスト駆動開発を試しています。 テストは絶対書いた方がいいとか、同じ工数ならテストが少ないほうがいいとか、色々言われていますが、個人的には新規開発のような、開発中に頻繁に内部のアルゴリズムが変わる状態の時こそテストを書いておくと、一瞬で変更箇所によるミスが見つかるので、最終的には早く仕上がると感じています。 プログラムを書いていると、当然privateな関数がどんどん増えていって、それらの関数についてもテストを書いておいた方が安心できる、というのが人情ってものです。 特に先ほど述べたような、アルゴリズムが頻繁に変わる時にすぐ該当箇所に気づくためには、private関数へのテストは必須です。 そこで、phpunitでprivateな関数をテストする方法を調べてみました。 候補 PHP5.4時代のprivateメソッドテスト手法 #php5_4 - 泥のように 上記のサ

    phpunitでprivateなstatic関数をテストする - かけるヒトからできるヒト
  • PHP: The Right Way

    ようこそ 時代遅れの情報がウェブ上にあふれている。そんな情報を見たPHP初心者は戸惑ってしまうだろう。そして、まずい手法やまずいコードが広まってしまう。 そんなのはもうやめよう。PHP: The Right Way は気軽に読めるクイックリファレンスだ。PHPの一般的なコーディング規約、 ウェブ上のよくできたチュートリアルへのリンク、そして現時点でのベストプラクティスだと執筆者が考えていることをまとめた。 大事なのは、 PHPを使うための正式なお作法など存在しない ってこと。 このサイトの狙いは、はじめて PHP を使うことになった開発者に、いろんなトピックを紹介すること。 経験豊富なプロの人にとっても、これまで深く考えることなく使ってきた内容について、新鮮な見方を伝えられるだろう。 このサイトは、決して「どのツールを使えばいいのか」を教えるものじゃない。 いくつかの選択肢を示して、それぞ

  • 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の日記
  • PHPをインタラクティブに実行する PsySH

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

    PHPをインタラクティブに実行する PsySH
  • php.js

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

    php.js
    brendon
    brendon 2014/06/08
  • Heroku で Composer を使う時に気を付けたいこと

    HerokuPHP をサポートしたので、テストがてら Laravel アプリケーションをデプロイしてみました。 デプロイしたのは、Doctrine を利用するアプリケーションだったのですが、ローカルでは composer でインストールできるのですが、Heroku にデプロイするとインストールされないという現象が起こりました。 Laravel での Doctrine 使用 今回のアプリケーションでは、DBのテーブルスキーマ情報を読み込んで、動的に画面を作るという処理があり、そこで Doctrine の SchemaManager を使っていました。 Laravel で、Doctrine の SchemaManager のインスタンスを取得するのは簡単で、下記のメソッドを実行するだけです。 $manager = DB::connection()->getDoctrineSchemaMa

  • Gitonomy – PHP製のGit管理サーバ

    おお、これは企業で使えそうですよ! 企業によっては外部にソースコードを預けられないため、自社でGitサーバを構えているところも多いでしょう。しかしそうなると管理画面が欲しくなります。GitHubの管理画面は優秀で、ああいったWebブラウザ上でリポジトリの情報を見たいと思うはずです。 そこで使ってみて欲しいのがGitonomyです。デザインの格好いい、Gitリポジトリマネージャです。 Gitonomyの使い方 GitonomyはPHP + Symfonyの組み合わせで作られていて、Webブラウザ上でGitリポジトリの操作が一通りできるようになっています。ユーザはプロジェクト単位にグループに入り、そこで権限管理される仕組みです。 ソーシャル機能はありませんが、企業ユースであれば十分ではないでしょうか。社内でGitサーバを立てている場合はぜひ導入を検討してみてください。 GitonomyはPHP

    Gitonomy – PHP製のGit管理サーバ
  • 新言語Hackで最強PHPerになろう! - Qiita

    新言語 Hack とは こんにちは、新言語 Hack が Facebook より OSS としてリリースされましたね。 詳細は以下の通り。 https://code.facebook.com/posts/264544830379293/hack-a-new-programming-language-for-hhvm/ 新言語 Hack は HHVM 向けの開発言語で静的型付き言語の性質を取り入れ PHP での素早い開発を実施し、PHPとの互換性があります http://hacklang.org/ http://hhvm.com/ HHVM (HipHop Virtual Machine for PHP) とは、Facebook が OSS で開発している PHP 用の JIT コンパイラです。 HHVM は PHP のコードをダイナミックにバイナリコードへと変換することで高速実行の実現を目

    新言語Hackで最強PHPerになろう! - Qiita
  • ソースコード20万行の大規模サイトのPHPを5.1から5.4に上げるためにやったことまとめ · DQNEO日記

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

  • 安全なPHPアプリケーションの作り方2013

    SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか

    安全なPHPアプリケーションの作り方2013
  • データベース無し、Markdownでコンテンツを作成するCMS·Pico MOONGIFT

    PicoはPHP製、MIT Licenseのオープンソース・ソフトウェアです。 CMS(コンテンツマネジメントシステム)と言えばデータベースにコンテンツを入れて、システムがそれを一覧にしたり詳細ページを作ったりします。運営担当者が自由にできるところは限られるものです。しかしPicoであればカスタマイズが容易でかつ高速なCMSが手に入ります。 フォルダを配置するだけで準備は完了です。インストールの手間もありません。 ファイル構成です。contentディレクトリの下にMarkdownで書かれたコンテンツがあります。 テーマ、プラグインがサポートされています。テンプレートエンジンはtwigになります。 Markdownファイルを修正すれば、それが自動的にコンテンツに反映されます。 テンプレート。見ても分かる通り簡単な作りです。 Picoはシンプルであり、データベースも不要で使える手軽なCMSとな

    データベース無し、Markdownでコンテンツを作成するCMS·Pico MOONGIFT
  • これは凄い!iOSアプリ内で動作するPHP·iPHP MOONGIFT

    iPHPはObjective-C製のソフトウェア(ソースコードは公開されていますがライセンスは明記されていません)です。 iOS上で動作するプログラミング言語と言えばObjective-CやJavaScriptくらいと思われています(アプリを開発できる言語はもっとありますが)。しかしその壁を打ち破るソフトウェアがiPHPです。名前の通り、PHPの実行エンジンをiOSアプリ内に埋め込んだソフトウェアです。 立ち上げました。さっそくphpinfoを実行します。 見慣れた画面です。PHPのバージョンは5.4.15となっています。 curlも組み込まれています。外部コンテンツを取り込んで…といったこともできるでしょう。 fileinfoやgdもあります。色々な使い方ができそうです。 evalを使って入力したテキストを評価させることができます。 こちらはベンチマークを実行した結果です。 iPHPは思

    これは凄い!iOSアプリ内で動作するPHP·iPHP MOONGIFT
  • すぐれた PHP ライブラリとリソース

    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

    すぐれた PHP ライブラリとリソース
    brendon
    brendon 2013/06/18
  • PDFを作成する (1/3):CodeZine

    はじめに PHPPDFを作成する場合にはPDFLibやmPDF、FDPDFなどさまざまな選択肢がありますが、ライセンス、パフォーマンスなどの点で問題がある場合に、Haruの利用を検討してみてはいかがでしょうか。 HaruはZLibやPNGと同様に、非常に緩いライセンス形態を取っているため、サービスの種類を問わず組み込みやすい点に特徴があります。 また、PHPのネイティブエクステンションとして提供されているため、PHPのライブラリとしてパフォーマンスが出ない場合にも利点があります。 とはいえ、サイト上にもあまり情報がなく、日語の利用に関して不安があるかもしれません。しかし最初にいくつか挙げたライブラリは、元々は海外発信のライブラリでした。対して、HaruはlibharuというCのライブラリのエクステンションであり、libharuは日が発信元となっていますので、日語に関しても安心して利

    PDFを作成する (1/3):CodeZine
  • 2013年において注目すべき PHP フレームワークは Laravel

    4月22日追記。細かい表現、データの追記、リンクを修正しました。Laravel の作者による Laravel 4 とSymfony 2 の比較はこちらの記事をご覧ください。 2013年においてもっとも注目すべき PHP フレームワークとして Laravel を挙げる。 執筆時点で Laravel の知識はほとんどないが、新しいプロジェクトでありながら、英語圏においてさまざまなチュートリアルが書かれおり、熱烈なファンを獲得したと見られる。ほかの PHP フレームワークの開発プロジェクトが抱えている将来の課題を考慮すると、Laravel を学ぶ価値はあると考えられる。 4月21日の時点で GitHub のスターの数は3971であり、2000年代後半からプロジェクトが存在していた CakePHP(3741) および Zend Framwork 2 (3905)を超え、PHP フレームワークとして