PHPカンファレンス福岡 2023 2023/06/24 uzulla
先週に書いた記事で、Eloquent ORM(以下Eloquent)をライブラリとして導入する方法を書きました。 blog.zuckey17.org この記事の中ではじめ、次のようなコードを書いてbooksテーブルについてBookクラスを作り全件を取得して表示しました。 <?php // ダメなコードです class Book extends Model { protected $table = 'books'; protected $fillable = [ 'id', 'isbn', 'name', 'author', 'created', 'updated', ]; } === $books = Book::all()->toArray(); foreach($books as $book) { echo $book['name']; } このコードは動いてはいましたが、2点の指摘を
PHP5からPHP7への移行を検討するとき、この記事を思い出してPHPCompatibilityを使ってみたところ、結構便利そうだった。 kakakakakku.hatenablog.com で、ちょっと導入が面倒な気がしたので、Dockerイメージに無理やり押し込んでみたのがこちら。 https://hub.docker.com/r/ariarijp/php-compatibility/ PHP_CodeSnifferとPHPCompatibility導入済みのイメージなので、Dockerホスト上のPHPアプリが置いてあるディレクトリをマウントすれば phpcs が実行できる。 設定ファイルは元記事を参考に、PHP7で非推奨になったものをチェックする。 <?xml version="1.0"?> <ruleset name="wordpress"> <rule ref="PHPCompa
Syntax: fastcgi_param parameter value [if_not_empty]; Default: — Context: http, server, location Sets a parameter that should be passed to the FastCGI server. The value can contain text, variables, and their combination. These directives are inherited from the previous level if and only if there are no fastcgi_param directives defined on the current level. FastCGI サーバに渡されるべきパラメータを設定します。 値にはテキスト、 変
みなさん、PHP書いてますか?ここ2ヶ月くらいPHPも書いていたのでその話を書きます。 この記事はVOYAGE GROUP techlog / Advent Calendar 2016の記事です。 例えば以下のような話に身に覚えはありませんでしょうか。 例外がどこかで握りつぶされており、例外的状況なのにエラー表示がまちまち。レスポンスステータスも一貫性がない。エラーログが適切に出ていない。 エラーログ出力用コードがいろんなところで散乱している。エラー文字列整形のための適当なヘルパメソッドがクラスごとに実装されている。 エラーごとにエラー表示のためのメッセージを設定するのが面倒になり、「システムエラーが起きました」とだけ表示されるようになってしまった。 例外ハンドリング周りのコードは考えるのが面倒なのでコピペだらけになっている。 オブジェクトの依存関係がクラスのプロパティに大量に埋め込まれて
こんにちは、pixivでPHPをやってるうさみです。健全なコードベースは黙っても降ってこないので、チーム全体で開発効率を高めるような改善をするのがお仕事です。 テキストエディタはmicro推しです ヾ(〃><)ノ゙☆ さる11月3日に大田区産業プラザ PiOで開催されたPHPカンファレンス 2016にて大怪獣に蹂躙されながらPhanについて30分のセッション発表をいたしましたので、その内容を紹介します! Phanとは PhanはPHPの静的解析ツールです。開発元はハンドメイドのマーケットサービスを運営し、現在PHP作者のRasmus Lerdorf氏する米Etsy社です。もちろんRasmus Lerdorf氏も開発に参加してます。 Phanは以下のような項目を検出できます。 関数・クラス・定数・変数などがすべて定義済か、アクセスできるか 関数の型と引数の数が合ってるか PHP5とPHP7の
サーバーサイドエンジニアの@Hirakuです。 2016年7月16日(土)、 PHPカンファレンス関西2016 にて基調講演をしてきましたので、その報告と補足をします。 トーク動画は後日公開されると聞いていますので、口頭で補足した内容などはそちらをご期待ください。 内容について 講演内容は今年2月に公開した記事 光遅い問題を克服してcomposerを10倍速くした話 – Mercari Engineering Blog をもう少し詳しく解説したものです。 基調講演ということだったので、Composer自体の細かい話をするよりも、なぜこんなことに時間を費やしてきたのか、自分より若いエンジニアに何か伝えるものがないか、というようなことを考えて、エモ全開の内容になりました。 改善活動だけを話すとComposerを貶す内容になってしまいます。詳しい事情も知らない人にDISの口実を与えるのも嫌だった
PHPカンファレンス関西2016の基調講演です。
AWS SDK for PHP のインストールから 始めるクラウドマスターへの道 〜 Promise による非同期オペレーション 〜 This document provides an overview of Amazon Web Services (AWS) and how PHP developers can use AWS services. It discusses: - Popular AWS services like Amazon S3, DynamoDB, SQS, SNS, and how they can be used. - Using the AWS SDK for PHP to interact with AWS services like S3 programmatically from PHP code using Composer, making API c
新年明けましておめでとうございます。GMOメディアの流しエンジニア、山田コーダーです。さて、ようやく弊社でもPHP 5.3、5.4系のプロジェクトの5.6化が一段落してまいりました。 PHP 5.6のリリースが2014年ですので今更感がありますが、「レガシーなPHPプロジェクトのバージョンアップに困っている」「使いたいライブラリーが5.3に対応してないからバックポートした」などという悲痛な声を目にしたこともあり、これからPHPのバージョンアップをされる方たちへのささやかな参考資料になればと思い、書かせていただきました。 さて、まずは本題に入る前に結果からお見せしようと思います。以下はNew Relic(アプリケーションのパフォーマンス監視サービス)のレスポンスタイムのグラフです。なおこのプロジェクトでは、ブラウザー表示用HTMLを出力するサーバー(Web 約10台)と、スマートフォンアプリ
PHP 5.3.3から現在最新のPHP5.6.7にアップデートする機会があったのでその時のメモ。 Cent OSでyum install phpをすると、 既にサポートが1年近く前に切れているPHP 5.3.3がインストールされてしまう。 もはやこのコマンドは既に絶対に打ってはいけないコマンドになってしまった。 なんとサービスの動いているサーバーのPHPのバージョンが5.3.3だったということで急遽アップデートすることに。 PHP7の発表も近そうな雰囲気がしているので、いい機会だということで一気に現在最新の5.6.7まであげることにした。 サーバー側の変更 サーバーにインストールされているPHPのアップデートそのものの作業に関しては、特に複雑な部分はない。 適切なビルドオプションを考えるというのが中心の作業。 まず今インストールされているPHPのコンパイルオプションを確認し、 その中から必
RHEL6/CentOS6 のサポート期限は、2020年11月30日までです。早めに OS リプレイスの計画を立てましょう この記事は RHEL/CentOS 7のPHP5.4.16 は安全か? の RHEL/CentOS 6 版です。 よく、 CentOS6.x にバンドルされている PHP5.3.3 を使用していると、 「まだ PHP5.3 なんて使ってるの?? セキュリティに対する意識あんの??」 って言われます。 確かに、PHP5.3.3 は2010年にリリースされたとても古いバージョンですし、5.3 系は2014年8月14日にリリースされた 5.3.29を最後に公式のサポートを終了しています。 でも、 CentOS6.x の PHP は、リリース当初の2011年から、 5.3.3 のままです。2015年12月現在でも、 5.3.3 のままです。これには理由があります。 CentO
タイトルは若干釣りです。 CakePHPにはマイグレーションツールとして、CakeDC/Migrations(CakePHP2)や、Phinxベースのcakephp/migrations(CakePHP3)があります。 とても有用ですし、CakePHP Bakerはみんな知っているツールです。自分もずっとお世話になっていました。 ただ、ちょいちょい困ることもあったので、最近はRidgepoleを使い始めています。 Ridgepole github.com Ridgepoleはクックパッド社で利用されているというマイグレーションツールです。 techlife.cookpad.com Ridgepoleは最大の利点が、1つのSchemafileを管理するだけでスキーマのべき等性を担保してくれるということです。 RidgepoleはDSL自体がRailsのActiveRecordと同じだというこ
remi(Les RPM de Remi - Repository)のrpmパッケージを使います。 http://rpms.famillecollet.com/ epelとremiのリポジトリを追加します。CentOS 6.5 (6系)用です。 # For CentOS 6.5, 6.4, ... % sudo rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm % sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm # For CentOS 7.0 $ sudo rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/7/
vargrant+chefでつくるPHP5.5+MySQL5.6+CakePHP3環境 巷で話題のvagrant、chefを試してみました。 折角なのでそれぞれ最新バージョンを積極的に入れてみることにしました。(結構苦労しました…) とりあえず手っ取り早く環境を作る手順を書いて行きます。 前提環境 ホストマシン環境 MacOS 10.9 VirtualBox 4.3.6 Vagrant 1.4.1 Chef 11.8.2 vagrant-omnibus 1.2.1 ruby 2.0.0p247 gem 2.0.3 仮想マシン環境 CentOS 6.5 64bit Apache2.2 (yumレポジトリ) PHP5.5 (remiレポジトリ) MySQL5.5 (公式rpm) 各種ソフトウェアのインストール VirtualBox 仮想マシンソフトです。以下URLからダウンロードしてインストー
週末にまとまった時間ができたので何か書こうと思った結果としてできた。 (6/30更新:本家にマージしていただきました!) github.com 使ってみるとこんな感じ。Queue関連のメトリクスを実際の値でテストしたかったけれど、Backlogとかその辺がいろいろわかってないせいかできなかったので以下の動作イメージでも0のまま。 インストールは適当にgo getして$GOPATH/binからコピーするのを想定。 ひさしぶりにGoを書いたのでMackerelのヘルプを写経してから書いた。 mackerel.io ヘルプをよく読めば気づいたことではあるけど、メトリクスはuint64またはfloat64でないと送信できないことに気づくまで2時間近くハマってしまった。それがなかったら1時間ちょっとで大体の処理は書けていたと思う。 テストコードではHTTPリクエストをモックできるhttpmockを使
今や開発環境はローカルにあるのが一般的です。OSを合わせたい場合でもVMを使えば簡単に実現できます。問題はコードが書き終わった後のデプロイではないでしょうか。どのサーバにどのコードを反映し、どんなタスクを実行するのか、ライブラリの変更があるのかなどを適切に管理する必要があります。 Ruby/Ruby on Rails界隈ではCapistranoというソフトウェアが使われることが多いです。Capistrano自体は汎用的なデプロイツールですが、PHPであればやはりPHP製のツールの方が分かりやすいでしょう。そこで今回はDeployerというPHP製のデプロイツールを紹介します。 Deployer — Deployment Tool for PHP Deployerのセットアップ Deployerはとても簡単にセットアップできます。本体をダウンロードして、パスの通ったところに配置するだけです。
This document discusses test-driven development (TDD). It provides an example of using TDD to develop a function to calculate the area of a square. The key steps are: 1) Write a test that fails for an initial function interface; 2) Implement the function to pass the test; 3) Refactor the code. It emphasizes writing tests before code, testing isolated units, and using a structured process of red-gr
Transcript ΅͘ͷߟ͍͖͑ͨ͞ΐ͏ͷ։ൃϑϩʔ PHPฤ Yuta Adachi ࣗݾհ ҆ୡ ༐ଠ (@UAdachi) ! ग़ɿౡࠜݝদߐࢢ ͓ࣄɿChatWork ΠϯϑϥνʔϜ ! ڵຯ͋Δ͜ͱɿυϝΠϯۦಈઃܭɺScalaɺςχε (Οϯϒϧυϯ։࠵த) ! IUUQT���DJSDMFDJ�DPN ͓ॻ͖ • ։ൃϑϩʔΛ࠷దԽ͍ͯ͘͠త • ։ൃڥ • ίϛϡχέʔγϣϯ • CI • σϓϩΠ త ! • ։ൃͷߴԽ • ΦϖϨʔγϣϯϛεͷ༧ • ϓϩμΫτͷ্࣭ + ՄࢹԽ ։ൃڥ Ͳ͏ͬͯߏஙͯ͠·͔͢ʁ • Vagrantͬͯͬͯ·͔͢ʁ ϝϯςφϯε • ։ൃڥͩͬͯߋ৽͞Εଓ͚Δ • ߏஙखॱॻΛ࡞Δͷେม " εΫϦʔϯγϣοτʹҹॻ͍ͯɺઆ໌จΛఴ͑ͯ… ʮԶͷڥʯ ྫ. Aʮಈ͔Ͷʔʯ BʮԶͷڥͩͱಈ͘
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く