PHPカンファレンス関西2018で発表した登壇資料です。
PHPカンファレンス関西2018で発表した登壇資料です。
こんにちはー。ファガイです。 今日は知見的なものの共有をしようかなと思います。 この記事を見てるということはLaravelに興味があったり、実際に使っている方だと思いますがLaravelのコアで利用されているサービスコンテナ(DIコンテナ)がどのように作用しているのかを把握されてない方もいると思います。 そのあたりをこの記事では書いていこうと思います。(そう言いつつも、なんか色々網羅した気がします・・・) はじめに この記事、結構長いです。解説には必要不可欠な情報ばかり含まれてます。 それを理解して読んでいただければと思います。。。 対象者 Laravelを少し触ってきた人 DIコンテナがなんとなく分かる人 LaravelのDIの仕組みが魔法だと思ってる人 環境 Laravel5.3を想定。ただ、Laravel5.1でもほとんど同じソースなので気にせずに。 まずDIって何よ? Depend
はじめに 本記事は PHP Advent Calendar 2017 18日目 です。 先に断っておきます。 この記事の内容は、 php スクリプトを書く上で全く必要のない知識です。 知ってすぐ何かに役立つような情報を求めていたらごめんなさい。 https://qiita.com/advent-calendar/2017/php にはもっとたくさんの素晴く役立つ記事がありますのでどーぞ。 なお、検証に利用した php は 7.2.0 です。 PHP の文字列 PHP の文字列は、どれも同じ "文字列" ではあるのですが、中身がちょっと違うとことがあるのをご存知でしょうか。 例えば、 <?php $str1 = 'A'; $str2 = sprintf('%s', 'A'); `$str1` と `$str2` はどちらも同じ `'A'` という文字列になりますが、違いがあります。 (変数名
「オブジェクトの複製」には本質的に厄介な問題をいくつも含みます。特に、オブジェクトの再帰的な複製(ディープコピー)には直感的ではない動作や単純ではない依存関係が発生しがちです。myclabs/deep-copyはそれをいい感じに解決してくれます。 公式サイト myclabs/DeepCopy: Create deep copies (clones) of your objects 概要 Create deep copies (clones) of your objects パッケージ名 myclabs/deep-copy 作者 My C-Labs mnapoli (Matthieu Napoli) ライセンス MIT License バージョン v1.6.1 (2017-04-12) インストール Composerでインストール可能です。 composer.phar require myc
知る者は言わず、言う者は知らず — 老子 世界で最も有名なプログラムの 1 つに、 hello world というものがあります。 <?php echo 'hello, world'; 出力先に対して「hello, world」という 12 字を書き込むだけの単純なプログラムで、プログラミング言語やライブラリの利用例を最小限の形で示すものです。 この記事ではメジャーな Web プログラミング言語の 1 つである PHP 処理系が、hello world をどのように実行するのかについて、簡単に解説します。 以下の 4 節で構成されています。 「PHP スクリプト実行の大体の流れ」は実行時の概略を箇条書きでまとめたものです。 「SAPI」では、PHP 処理系の起動のされ方についての基礎知識を解説します。 「Zend Engine とオペコード」は PHP 公式処理系の仮想マシンの命令と、PH
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 は知っておきたい極めて重要な概念です。 特に、コードの
こんにちは! 東京なのに周辺にポケストップが1つもない田舎に住んでいます、@fortkle です(世田谷公園の徒歩圏内に引っ越したいです)。 さて、みなさんはPHPアプリケーションのデプロイツールに何を使っているでしょうか。 今回コネヒトで Deployer というPHPで書かれたデプロイツールを採用したのですが、なぜDeployerなのかという理由と、実際に使っているおすすめの設定をいくつか共有したいと思います。 ※ Deployerのインストール方法や基本的な使い方を知りたい場合は既にインターネット上に良い記事がたくさんあるのでそちらを参考にしてみてください。 デプロイツール、どうする? 今回、新しく小規模PHPアプリケーションをデプロイする機会があったため下記の条件で新しくデプロイツールの選定を行いました。 PHPのアプリケーションなので デプロイツールもPHP製のもの を採用したい
今や開発環境はローカルにあるのが一般的です。OSを合わせたい場合でもVMを使えば簡単に実現できます。問題はコードが書き終わった後のデプロイではないでしょうか。どのサーバにどのコードを反映し、どんなタスクを実行するのか、ライブラリの変更があるのかなどを適切に管理する必要があります。 Ruby/Ruby on Rails界隈ではCapistranoというソフトウェアが使われることが多いです。Capistrano自体は汎用的なデプロイツールですが、PHPであればやはりPHP製のツールの方が分かりやすいでしょう。そこで今回はDeployerというPHP製のデプロイツールを紹介します。 Deployer — Deployment Tool for PHP Deployerのセットアップ Deployerはとても簡単にセットアップできます。本体をダウンロードして、パスの通ったところに配置するだけです。
こんにちは、@9ensanです。 PHPの依存管理ツールの「Composer」を使おうと思うとコマンドを覚えておいた方がいいと思うのでちょっと調べてみました。 以下解説になります。 全てのコマンドに有効なオプション –verbose(-v):詳細メッセージを表示させる。 –help(-h):ヘルプを表示する。 –quiet(-q):メッセージを表示しない。 –no-interaction(-n):対話型のメッセージを表示しない。 –working-dir(-d):作業フォルダを指定する –profile:メモリ使用量と実行時間を表示する。 –ansi:ANSIカラーでメッセージを出力する。 –no-ansi:ANSIカラーを使用せずにメッセージを出力する。 –version(-V):バージョンを表示する init composer.jsonを作成するコマンド、手で書くよりは少し簡単に作成で
先日別のチームから、 「PHPで作成したWebアプリの速度が遅いので助けてくれー」 という相談を受けた。 対応したものの、結構時間がかかって面倒だったので、 今後こういった問題が起こった時に使えるよう、チェックリストをまとめてやった。 基本的な内容だけど、 このチェックリストの内容をやってみて、それでもダメなら相談しなさい、 と伝えておくことで相談を減らすフィルタとして働いてくれるはずだ。 PHPプロジェクトに限らず、バックエンドでデータベースを使用している Webアプリのプロジェクトなら試す価値のあるものが多いはず。 調査や対応方法の手軽さ順で並べるとこんな感じ: Webブラウザのデベロッパーツールでレスポンスを計測する Webサーバ(Apache)のリクエスト時間をログに出力する ログ解析ツールでURL毎の付随リクエスト数を確認する データベースのスロークエリログを出力する プロファイ
PHP製デプロイタスクランナー Envoy(Laravelファミリー) Posted: 2015-05-11 00:12 | PHP全般 デプロイツール、最近は便利なものがたくさんありますね! 自分はいつもCapistrano3なんですが、最近Rocketeerを触ってみたりしてPHP製のデプロイツールもいいものが揃ってきました。 そんな中、日本国内ではほとんどエントリを見かけないのに実は結構使いやすいものを紹介しましょう。 その名もEnvoy トランスフォーマーのコンボイと似てます。(これが言いたかっただけです) EnvoyはLaravel作者のTaylor Otwell氏作のリモートサーバに接続してデプロイしたりするタスクランナーツールで、 Laravel Envoyとして紹介されていますが、実際のところ Laravelとの親和性は皆無なので、なんでも使えます。 RocketterもC
PHPのためのCapistrano風デプロイツール「Rocketeer」でLaravelをデプロイするの補足として、Rocketeerを本格的に運用する上で必要となってくるちょっと進んだ機能を紹介します。 複数のリモートホストを一括で操作する app/config/packages/anahkiasen/rocketeer/config.phpのconnectionsには複数のリモートホストの接続情報を設定することができます。 app/config/packages/anahkiasen/rocketeer/config.php // The various connections you defined // You can leave all of this empty or remove it entirely if you don't want // to track files
Transcript ΅͘ͷߟ͍͖͑ͨ͞ΐ͏ͷ։ൃϑϩʔ PHPฤ Yuta Adachi ࣗݾհ ҆ୡ ༐ଠ (@UAdachi) ! ग़ɿౡࠜݝদߐࢢ ͓ࣄɿChatWork ΠϯϑϥνʔϜ ! ڵຯ͋Δ͜ͱɿυϝΠϯۦಈઃܭɺScalaɺςχε (Οϯϒϧυϯ։࠵த) ! IUUQT���DJSDMFDJ�DPN ͓ॻ͖ • ։ൃϑϩʔΛ࠷దԽ͍ͯ͘͠త • ։ൃڥ • ίϛϡχέʔγϣϯ • CI • σϓϩΠ త ! • ։ൃͷߴԽ • ΦϖϨʔγϣϯϛεͷ༧ • ϓϩμΫτͷ্࣭ + ՄࢹԽ ։ൃڥ Ͳ͏ͬͯߏஙͯ͠·͔͢ʁ • Vagrantͬͯͬͯ·͔͢ʁ ϝϯςφϯε • ։ൃڥͩͬͯߋ৽͞Εଓ͚Δ • ߏஙखॱॻΛ࡞Δͷେม " εΫϦʔϯγϣοτʹҹॻ͍ͯɺઆ໌จΛఴ͑ͯ… ʮԶͷڥʯ ྫ. Aʮಈ͔Ͷʔʯ BʮԶͷڥͩͱಈ͘
みなさんはApache Arrowを知っていますか? 普段データを処理している人でも今はまだ知らない人の方が多いかもしれません。しかし、数年後には「データ処理をしている人ならほとんどの人が知っている」となるプロダクトです。(そうなるはずです。) Apache Arrowはメモリー上でデータ処理するときに必要なもの一式を提供します。たとえば、効率的なデータ交換のためのデータフォーマット、CPU/GPUの機能を活用した高速なデータ操作機能などです。 一部のデータ処理ツールではすでにApache Arrowを使い始めています。たとえば、Apache SparkはApache Arrowを活用することでPySpark(PythonからApache Sparkを使うためのモジュール)とのやりとりを高速化しています。データ量によっては10倍以上も高速になります。(リンク先の例では20秒→0.7秒と約3
先日いれた謎のHHVM状態ではありますが、メゲないでReactPHPの話し。 発端 ちょっと前に、reactPHP+HHVM+nginxでSymfonyを動かそうぜ!という非常にワクテカ感あふれるイケてる記事があった、こちらです。 http://marcjschmidt.de/blog/2014/02/08/php-high-performance.html これがそのProcess Managerである。内部的にphpをフォークして、マルチプロセスな感じにしている。 https://github.com/marcj/php-pm まあ、nginxとHHVMはもう普通に使われているようなものなので、コメントは特に無い。 残るReactPHPだが、まあPHPerなら知ってるだろうけどいわゆるノンブロッキング、イベント駆動型のサーバーを作成することができる。PHP自体がサーバとして動くというあ
今回はConoHaのロードバランサーを使って、1000req/secをさばけるWordPressのクラスタ構成を作ってみます。WordPressの負荷軽減策やスケールアウトはよく語られるテーマではありますが、今回はロードバランサー、イメージ保存、1Gbpsのローカルネットワークなど、ConoHaならではの機能を使って構築してみます。またその際のチューニングポイントなども解説します。こちらはConoHa以外の環境でもきっと有用だと思います。 このページではあまり限界性能を引き出すチューニングを目指すのではく、実際に皆様がConoHa上でクラスタ構成を構築する際に、どういう構成を作れば良いのか、どんなオプションを使えば良いのか、スケールするにはどういうチューニングを行うのか、などの参考にしていただくのが目的です。WordPressは利用者も多く、PHPで書かれていてMySQLへの接続も必要な、
さくらのVPS8G内にてNginxを利用しているWordpressのサイトがあります。 このサイトで、502 Bad gatewayが表示されてしまいWEBサイトが機能しなくなったときの個人メモです。 CloudFlareを利用していたので最初にネームサーバーを書き換えてCloudFlareの利用を停止。 続いてエラーログを調べる。 ・WordPressサイトのエラーログの内容は以下 [error] 9864#0: *76478 connect() to unix:/tmp/php.socket failed (11: Resource temporarily unavailable) while connecting to upstream, client: 127.0.0.1, server: **********, request: "POST /xmlrpc.php HTTP/1.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く