タグ

関連タグで絞り込む (169)

タグの絞り込みを解除

PHPに関するanoncomのブックマーク (216)

  • 【速報】サーバ 1 台で 10,000 rps も夢じゃない? Laravel Octane 1.0 リリース

    つい数時間前、新しい Laravel の First Party ライブラリが正式リリースされました。 Laravel Octane と呼ばれています。 これはどんなライブラリか一行で説明すると、 「php-fpm に置き換わるミドルウェアを使って、 Laravel アプリケーションを超高速でさばくためのライブラリ」 です。 現在の一般的な PHP アプリケーションは、 nginx や Apache の裏側で php-fpm や mod_php を使ってサーブしています。 その利点として、「毎リクエストごとにメモリを解放することで、メモリリークなどを起こさない」ようになっています。 逆にいえば、毎リクエストごとに1から必要な変数をメモリに展開する必要があるため、スタートアップ速度がサービスの規模に比例して遅くなっていく、ということです。 もちろん PHP 8.0 で入った JIT 含め、

    【速報】サーバ 1 台で 10,000 rps も夢じゃない? Laravel Octane 1.0 リリース
  • P++: 銀河に平和をもたらすための奇策と決着 - Qiita

    PHP 8から、PHPは「PHP」と「P++」という2つの言語を提供するようになる というキャッチーな紹介をするP++: 静的型付けをめざすPHPという記事がそれなりに話題になり、このニュースは目覚しく革新的な内容で、多くのひとの目を引き付けました。 これは早まった理解であり、ほとんど誤報と言ってもいい内容でした。2019年8月15日には提案者人も、少くとも「P++」の計画を短期的に実現するととは非現実的であり時期尚早であることを認めています。 この記事では、PHP開発の現状、なぜ野心的なP++計画が提案され、事実上撤回されたかの経緯について紹介します。 [中立性のための表示] この記事の著者@tadsanはPHPの静的解析を強く推進する立場です。 PHPゆるふわCI入門 PHP型検査・夢と理想と現実) 三行で要約 PHPはバージョンを経るごとに「歴史的経緯」による負債が削ぎ落されてきた

    P++: 銀河に平和をもたらすための奇策と決着 - Qiita
    anoncom
    anoncom 2019/08/14
  • P++: 静的型付けをめざすPHP

    PHP: pplusplus:faq PHP 8から、PHPは「PHP」と「P++」という2つの言語を提供するようになる。P++はPHPとの下位互換性を削りながら除々にPHPを静的型付け言語にする試みだ。 PHP開発者の中には2つの流派がある。PHPの源流であり現在の形である動的型付け言語としてのPHPを良しとする流派と、PHPをより強い静的型付け言語へと発展させたい流派だ。良い悪いの問題ではない。どちらの流派も正当な理由がある。しかし、ゆるふわな動的型付け言語とガチガチの静的片付け言語は同じ一つの言語として同居できない。 そこで、コードネームP++として、PHPを静的型付け言語に発展させる新しい言語の開発が提案された。P++はforkではなく、PHPと同じコードベースを共有する。PHP 8のバイナリはPHPとP++を同時に実装する。言語の切り替えは何らかの宣言によって指定する。 P++は

    anoncom
    anoncom 2019/08/13
    PHPで開発していて複雑さは増してるのでIDEは必須だし静的型付けによる束縛はありがたい(入力値チェックを毎回書かなくて済む)最近はタイプヒンティングなども実装されてきてたし、ついに来たなぁという印象。
  • A PHP Compiler, aka The FFI Rabbit Hole

    It’s no secret that I’m into building toy compilers and programming languages. Today I’m introducing something that’s not a toy (I hope). Today, I’m introducing php-compiler (among many other projects). My hope is that these projects will grow from experimental status into fully production ready systems. JIT? AOT? VM? What The Heck?Since I’m going to be talking a lot about compilers and components

    A PHP Compiler, aka The FFI Rabbit Hole
    anoncom
    anoncom 2019/04/24
  • PHP 8でのJIT採用が可決、賛成50反対2。PHP 7.4への試験的採用は否決

    現在開発中のPHP 8にJITコンパイラを組み込むべきかどうかを決定する投票が3月28日に締め切りを迎え、賛成が50票、反対が2票と圧倒的多数で可決されたことが、発表されました。 JITコンパイラはプログラムの実行時にコンパイルを行い、ネイティブコードを生成して実行するというもの。事前にコンパイル作業が不要なためプログラムを手軽に実行できるうえ、ネイティブコードによる高速な実行が期待できることが特徴です。 投票に参加したのはPHPの開発に貢献しているプログラマなど。同時にPHP 7.4へのJITコンパイラの実験的組み込みについても投票が行われましたが、こちらは賛成18、反対36の結果となり否決されました。 PHPは2015年12月、PHP 7へと10年ぶりにバージョンアップした際、PHP 5と比較して2倍以上の大幅な性能向上を果たしています。 参考:「PHP 7」登場。10年ぶりのメジャー

    PHP 8でのJIT採用が可決、賛成50反対2。PHP 7.4への試験的採用は否決
    anoncom
    anoncom 2019/04/09
    正直、これまでの改善含めていままでJITじゃなかったこともすごい(代わりにAPCやOPCなどで凌いでたところはあるが)それにしても、ようやく。
  • Laravel Zero

    Highly modular Framework design Laravel Zero is a lightweight and modular micro-framework for developing fast and powerful console applications. Built on top of the Laravel components. Write powerful Console applications Laravel Zero has a simple and powerful syntax that enables developers to build very complex applications far more quickly than with any previous framework. For Artisans 100% Open

    Laravel Zero
    anoncom
    anoncom 2018/02/20
    コマンドラインアプリケーション用Laravel
  • 2018年のパスワードハッシュ - Qiita

    数年前であれば仕方なかったところですが、2018年の今となっては、パスワードハッシュの手動計算はもはや"悪"です。 まずログイン認証と称してmd5とかsha1とか書いてあるソースはゴミなので投げ捨てましょう。 hashやcryptは上記に比べればずっとマシですが、使い方によっては簡単に脆弱になりえます。 あと『パスワードを暗号化する』って表現してるところも見なくていいです。 PHPには、ハッシュに関わる諸々の落とし穴を一発で解消してくれるpassword_hashという超絶便利関数があるので、これを使います。 というか、これ以外を使ってはいけません。 以下はフレームワークを使わずに実装する際の例示です。 フレームワークを使っている場合は当然その流儀に従っておきましょう。 ハッシュの実装 データベース ユーザ情報を保存するテーブルを作成します。 パスワードカラムの文字数は、システム上のパスワ

    2018年のパスワードハッシュ - Qiita
    anoncom
    anoncom 2018/02/11
    PHPにはPASSWORD用に利用推奨する関数が、使いやすい形で用意されていたのは知らなかった(自前で実装するかフレームワーク使ってた)
  • golangを使って開発したWebAPIを1年半運用して改善してきたことー月間20億PVのマンガサービス開発の裏側 | Nagisaのすゝめ

    2017年10月2日 golangを使って開発したWebAPIを1年半運用して改善してきたことー月間20億PVのマンガサービス開発の裏側 はじめに 初めまして、サーバーサイドエンジニアの曽根田です。 0から立ち上げ3年で月間20億PV達成!マンガZEROの開発を牽引するエンジニアチーム での紹介にもあるように、弊社では複数のマンガアプリの開発が並行して進められています。 その中で今回はマンガZEROの成長過程でぶつかり、 乗り越えてきた問題をサーバーサイド視点で紹介していきたいと思います。 乗り越えてきた問題 最初はPHP5.6+Phalconというマイクロフレームワークでプロダクトを運用していました。 マンガZEROメジャーバージョンのアップデートの際に、golangを採用しました。 理由は以下の2点です。 バイナリ一つで動作する(外部依存しない) 軽量でハイパフォーマンス 弊社には積極

    golangを使って開発したWebAPIを1年半運用して改善してきたことー月間20億PVのマンガサービス開発の裏側 | Nagisaのすゝめ
  • PHP, Python, Golang を NGINX Unit で動かしてみた - /var/log/study

    NGINX Unit ホームページは以下 www.nginx.com もしくはミラーだけどGitHubが以下となる github.com RestAPIやJSONで設定できる、phpPHP-FPMpythonのwsgiサーバーなど言語ごとのアプリケーション・サーバーを集約したアプリケーションサーバーという感じ。なのでNginxの後ろで動くサーバーという認識で大丈夫なのかな? まだversionは0.1なので、今後どんどん成長していくはず。 現状は以下に対応しているとのこと Python 2.6, 2.7, 3 PHP 5, 7 Go 1.6 or later ざっくりとした所感 プロダクトに関して 言語ごとのミドルウェア運用がNGINX Unitに集約されて嬉しい可能性がある Docker + NGINX Unit も嬉しいが、NGINX Unitだけでも十分に嬉しいかも ベンチマーク

    PHP, Python, Golang を NGINX Unit で動かしてみた - /var/log/study
  • PHP って JavaScript に変換できるの?できるわけないだろ! babel-preset-php ってのが今日リリースされた?これまさか・・・。ファーーーーーーーーーーーwwwwwwwwwwww - Qiita

    PHP って JavaScript に変換できるの?できるわけないだろ! babel-preset-php ってのが今日リリースされた?これまさか・・・。ファーーーーーーーーーーーwwwwwwwwwwwwPHPJavaScriptbabel PHP (7) を Javascript (ES7) に変換するための Babel プリセット babel-preset-php日 (2017-7-12) リリースされたみたいです 正直、「は?凄すぎだろ (小並感) 」という言葉しか出てきませんww とりあえず面白そうなので試してみます! 使い方 公式の通りですが、プロジェクトを作成し babel-cli と babel-preset-php をインストールします。

    PHP って JavaScript に変換できるの?できるわけないだろ! babel-preset-php ってのが今日リリースされた?これまさか・・・。ファーーーーーーーーーーーwwwwwwwwwwww - Qiita
    anoncom
    anoncom 2017/07/26
    なんだこれ
  • なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い

    twitter上でnot foundの場合は適当なパラメータつけたURLにしてください。 https://www.slideshare.net/sasezaki/php-qa2019-200006092?p PHPカンファレンス2019のスライドです https://fortee.jp/phpcon-2019/proposal/01abf927-eb46-4708-95a1-ae05b9ac2bcf

    なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
    anoncom
    anoncom 2017/05/27
  • PHP7.1以降なおったバグたち - Qiita

    2016/12/01に出たPHP7.1.0以降、2017/04/13に出た7.1.4までに修正されたバグのうち、目立ったものを取り出してみた。 メモリリークとかSegfaultとか長すぎるやつとかは確かめるのが面倒なのでスルー。 array_key_exists fails on arrays created by get_object_vars オブジェクトから配列にしたらarray_key_existsでキーが見つからないという問題。 $json = '{"2":1}'; $obj = json_decode($json); $arr = get_object_vars($obj); $key = array_key_exists('2', $arr); // falseになる これは$arrが[2=>1]ではなく["2"=>1]になっているせいで発生する問題です。 元々7.2でなおす

    PHP7.1以降なおったバグたち - Qiita
    anoncom
    anoncom 2017/05/04
  • 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」和訳)
  • PHP 8で新しいJITコンパイラ導入へ

    PHP is a popular general-purpose scripting language that is especially suited to web development 次期PHPとしてリリースされることが予想される「PHP 8.0」が現在よりも高速に動作する可能性が出てきている。PHPの開発者が内部の開発者向けに送ったメール「[PHP-DEV]JIT for PHP project」において、PHP 8.0を目処に新たなJITの開発が進められていることが伝えられたのだ。 開発はまだ初期の段階にあり、今後、実装式も含めて変更される可能性がある。開発当初のコードはGitHubにおいて公開されている。今のところ、Linux x86およびx86_64が対象とされており、性能などを評価する段階にはないとされている。PHPの仮想マシンにとってどのようなJIT技術が適しているか

    PHP 8で新しいJITコンパイラ導入へ
    anoncom
    anoncom 2016/10/26
    もう8か
  • 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の日記
  • 『例えば、PHPを避ける』以降PHPはどれだけ安全になったか

    Web API開発をするなら、ドキュメントは自動生成にしておこう!(PHPerKaigi2021) 皆さんの開発現場はAPIドキュメントの自動生成化がお済みでしょうか? このLTではCakePHP4にSwaggerを導入して、コードのアノテーションからドキュメントを自動生成するまでの流れをご紹介いたします。 ▼こんな方におすすめ ・これからWeb API開発を始める方 ・ドキュメント書くの面倒な方 ・実装とドキュメントの乖離に苦労したことがある方 昨年、社内で実施した勉強会のテーマの中で一番メンバーの反応が良かったのが「アノテーションからのドキュメント自動生成」でした。ドキュメント作成の手間を少しでも減らして、開発体験を向上させていきましょう! (LTではCakePHPをサンプルコードとして紹介いたしますが、Laravelに導入する手順も別途資料をご用意させていただく予定です。) http

    『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
  • PHPの生みの親、ラスマス・ラードフ氏インタビュー | gihyo.jp

    PHPの生みの親⁠⁠、ラスマス⁠⁠・ラードフ氏インタビュー 2015年12月に無事公開されたPHP7。その公開に先立ってPHPの生みの親であるラスマス・ラードフ氏に話を伺う機会がありました。英語で行われた一時間のインタビューは長大ですがラスマス氏の思想がよく分かる話題が多く、可能な限りそのままの形でお伝えすべく、その模様すべてをお届けします。 なお、インタビューは10月に開催されたPHPカンファレンス2015の講演終了後に行われ、リリースに関する話題などはその時点でのものです。 現在の仕事と生い立ち ―――― まずは、PHPを作ってくださってありがとうございます。今日の基調講演もすばらしかったです。 ラスマス:ありがとうございます。 ―――― いきなりですが、個人的な質問から始めてもいいでしょうか。 ラスマス:どうぞ。 ―――― Etsyではどのようなお仕事をなさっているんですか? ラスマ

    PHPの生みの親、ラスマス・ラードフ氏インタビュー | gihyo.jp
  • PHPはどのように動くのか ~PHPコアから読み解く仕組みと定石:書籍案内|技術評論社

    2015年9月17日紙版発売 2015年9月17日電子版発売 蒋池東龍 著 A5判/248ページ 定価2,508円(体2,280円+税10%) ISBN 978-4-7741-7642-0 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle 楽天kobo honto 書のサポートページサンプルファイルのダウンロードや正誤表など このの概要 同じようなスクリプトなのに,なぜパフォーマンスが違うのか? オブジェクト指向だと,なぜ遅いのか? PHP7は,なぜ速くなったか? 最も人気のあるWeb用プログラム言語であるPHPの知られざる内部構造を解説した,日初の書。「メモリを節約したり,処理を軽くしたりするスクリプトを書くには」「パフォーマンスの高いExtensionを作るには」「Zen

    PHPはどのように動くのか ~PHPコアから読み解く仕組みと定石:書籍案内|技術評論社
  • PHP5.6からPHP7にアップグレードして実際にはまった点9個 · DQNEO日記

    仕事で使っているPHPアプリケーションをPHP7 beta1で動かしてみたらそのままでは動きませんでした。 私が実際にはまった点を紹介します。 なお、PHP7の変更点についてはhnwさんの記事に詳しく網羅されているのでご一読ください。 PHP7で変わること - hnwの日記 Apacheのモジュール名が変わっていた ApacheにPHPを組み込むためのモジュール(俗にいうmod_php)のモジュール名・ファイル名が変更になっていました。 LoadModule php5_module modules/libphp5.so ↓ LoadModule php7_module modules/libphp7.so memcache extensionがインストールできない PHPからMemcachedを使うためのExtensionには2つあります。 memcache memcached memca

    PHP5.6からPHP7にアップグレードして実際にはまった点9個 · DQNEO日記
    anoncom
    anoncom 2015/07/17
  • H2OとPHPを組み合わせるの、超簡単です(もしくはmod_rewriteが不要な理由)

    FastCGI対応機能がH2Oにマージされたことを受けて、uzullaさんが「H2OでPHP(がちょっとだけ動くまで)」という記事を書いてくださっています。 ありがたやありがたや。 その中で、 http://hoge/entry/1 みたいなのをphpにマップする方法はまだよくわかってません。その内しらべます github.comを読む限り FastCGI (or PHP) applications should be as easily configurable as it is for the Apache HTTP serverということで、やったぜ!ってなるんですけど、nginxはもとより、Apacheにおいても現状ルーターをつかっているようなアプリだとhtaccessをいちいちかかないといけないので、Apacheみたいなスタイルが楽なのか?というとちょっと疑問があります。 (たと