PHPに関するmiyahanのブックマーク (5)

  • インストール 5.4 Laravel

    動画で学びたい? Laracastsではフレームワークの初学者のために、無料のLaravel全体を紹介する動画を英語で提供しています。学び始めるには最適の場所です。 サーバ要件 Laravelフレームワークを動作させるには多少のシステム要件があります。もちろん、Laravel Homestead仮想マシンでは、要求が全て満たされています。ですから、Laravelのローカル開発環境としてHomesteadを活用されることを強くおすすめします。 しかし、Homesteadを使用しない場合は、以下の要件を満たす必要があります。 Laravelのインストール LaravelはComposerを依存パッケージの管理に使用しています。ですから、Laravelを始める前に、自分の開発機にComposerを確実にインストールしておいてください。 Laravelインストーラ 最初にComposerを使用し、

  • パフォーマンスを意識して正規表現を書く - Shin x Blog

    正規表現を書く際、どのようなパターンにマッチさせるか、どこをキャプチャするかという視点で記述することはあっても、パフォーマンスを考えて記述するというのはある程度知っている人でなければ忘れがちな視点です。 このエントリでは、バックトラックをメインに正規表現がパフォーマンスに及ぼす挙動について見ていきます。 対象の正規表現エンジン ここでは、従来型 NFA を対象としています。具体的には、PHP の preg_ 関数で利用している PCRE や mb_ereg 関数が利用している鬼車です。PerlRubyPythonJava、.NET でも従来型 NFA を採用しているので、似た挙動となるでしょう。 「従来型 NFA」や「バックトラック」などの用語については、「詳説 正規表現 第3版」のものを用いています。 バックトラックによるマッチ探査 正規表現エンジンでは、指定された文字列が、パ

    パフォーマンスを意識して正規表現を書く - Shin x Blog
  • php-go - GoでPHPのエクステンションを開発

    MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました PHPを高速に実行しようと思ったらエクステンションを使っていくことになるでしょう。しかしそうなると使う言語がC言語になり、途端に敷居が上がってしまいます。その結果、独自のエクステンションをどんどん書いていこうという気にならないかも知れません。 そこで注目したいのがphp-goです。なんとPHPのエクステンションをGo言語で作成できます。 php-goの使い方 例えば以下はテストのエクステンションコードの一部です。普通にGoのコードです。 package main import "log" import "reflect" import "math/rand" import "time" import "github.com/kitech/php-go/phpgo" type PGD

    php-go - GoでPHPのエクステンションを開発
  • スレッド処理は慎重に – PHPでのスレッド処理 : 前編 | POSTD

    私が覚えている限り、非常に重い(または非同期の)タスク処理に関して、PHPは常に厳しい評価をされていました。これまではずっと、長いタスクを並列化したければ pcntl_fork を通してフォークするという方法を取らなければいけなかったので、タスクの結果を適切に処理することができませんでした。 そこで私たちは、キューイング(どちらかと言えばタスクを遅くするだけ)やReactPHP、または他の言語を一緒に使うといった、より複雑なソリューションへと向かっていきましたが、PHPでもスレッド処理は可能なのです。そしてより重要なのは、 その方法はあなたが思っているよりもはるかに簡単だということです。 この記事では、 pthreads 拡張(POSIX Threadsの略)について説明します。2012年ごろから広く使われていますが、多くの人がその存在を忘れているか、使うのが苦痛だと考えると思います。その

    スレッド処理は慎重に – PHPでのスレッド処理 : 前編 | POSTD
  • PHP のシグナルハンドラのいろいろ - ngyukiの日記

    ここ数年、PHP でシグナルを使う機会が多かったので、気づいた点などを整理してみます。 当のシグナルハンドラと PHP のシグナルハンドラ pcntl_signal() で登録する PHP のシグナルハンドラは、当の意味でのシグナルハンドラではありません。なので、シグナルハンドラから非同期シグナルで安全では無い関数でも呼び出すことが出来ます。 <?php declare (ticks = 1); pcntl_signal(SIGTERM, function ($signo) { printf("%d -> %s\n", $signo, "だが断る"); }); posix_kill(posix_getpid(), SIGTERM); exit(0); 当のシグナルハンドラは次の箇所で定義されており、所謂リンクドリストに受信したシグナル番号を記録しています。 pcntl.c:1216

    PHP のシグナルハンドラのいろいろ - ngyukiの日記
    miyahan
    miyahan 2016/07/08
  • 1