並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 154件

新着順 人気順

PHPStanの検索結果1 - 40 件 / 154件

  • プログラマ歴10年が時給1000円台で仕事をしたら非常に良かった話

    長井産業 今の仕事のやり方では局地的最適化が進みすぎて限界を感じていた ただ立場的に急激に生産性を下げるわけにはいけかない学生アルバイトレベルの給料で仕事をしつつ、非常に多くの新しいツールやサービスを仕事内で試せて満足しているスペック都内在住30歳独身男性。 大学は情報系だったが中退した。 Webプログラマでインフラからデザインまで分野に関わらず幅広くやっている。 今はフリーランスでそこそこの売上がある。 趣味もプログラミングでoss contributionしたりカンファレンスに登壇したりなどをしてる。 多少ぼかして書いてる部分がある 悩み今までに色々な規模や業種の会社でWeb開発をしてきた。 複数のプロジェクトに携わり、多くの人と関わってきた。 「優秀なエンジニア」というものの評価指標は様々あるが、以下のようなことが考えられる。 単位時間あたりの仕様の把握速度が速い単位時間あたりのコー

      プログラマ歴10年が時給1000円台で仕事をしたら非常に良かった話
    • PHPStanで始める継続的静的解析 #phperkaigi /php-static-analysis

      PHPerKaigi 2018のトーク内容です。

        PHPStanで始める継続的静的解析 #phperkaigi /php-static-analysis
      • Slim Framework と Docker を使って本格的にアプリを作ってみよう|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

        Slim Framework と Docker を使って本格的にアプリを作ってみよう はじめに Web アプリケーションの開発をするにあたっては勉強しなければならないことは多く、どう勉強すれば良いかはなかなか難しい問題です。初心者向けの解説は比較的たくさんあるのでとりあえずやってみるくらいは何とかなるものの、実戦的な開発がどうなっているかという総合的な話は実務を経験しないとわからないことが多いことでしょう。 ということで、本記事では最近流行の Docker と、そこそこ名前は見かける PHP のマイクロフレームワークの Slim Framework を使って実戦的な Web アプリの開発をしてみる(開発環境を作ってみる)こととします。実装的には、ドメイン実装としてユーザー登録、ログイン、ユーザー情報取得の3つのAPIを実装するところまでを取り扱います。また、静的解析を最大限活用してユニット

          Slim Framework と Docker を使って本格的にアプリを作ってみよう|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ
        • level=0 から始める PHPStan(Larastan) 導入ガイド - Shin x Blog

          PHP にはアプリケーションを実行せずに静的にコード品質をチェックする静的解析ツールがいくつかあります。有名なところでは、PHPStan や Psalm、Phan、PHPMD などがあります。本エントリでは、まだこうした静的解析ツールを導入していないプロジェクト向けに PHPStan 導入の流れをまとめてみました。 3(4) 行まとめ サンプルコード PHPStan とは 適用方針 Playground PHPStan のインストール Composer Composer(Larastan) Docker 設定ファイルの作成 PHPStan の実行 主なエラー(level=0) baseline ファイルの作成 baseline ファイルの修正 CI での自動実行 GitHub Actions の設定 ブランチ保護ルール さいごに 3(4) 行まとめ composer もしくは Docker

            level=0 から始める PHPStan(Larastan) 導入ガイド - Shin x Blog
          • PHPStanで始めるPHPのための静的解析 #phperkaigi

            こんにちは。最近メルペイに異動になった @hiraku です。 2018年3月10日(土)に、PHPerKaigi 2018というイベントで登壇してきました。「PHPStanで始める継続的静的解析」ということで、メルカリで使用しているPHPStanというツールについて解説しました。 phperkaigi.jp 発表内容を短くまとめると メルカリではPHPStanというツールをCIフローに組み込み、PHPコードの静的解析を行ってコードの信頼性向上に努めています。 PHPStanはautoloadファイルを解釈し、一部のコードを実行することで解析の高速化を行っており、よくできています。 とはいえ、PHPに対して可能な解析に限界はあるので、テストも合わせて行っていきましょう。 大事なのは、品質向上のアプローチが用意され、心配せずにリリースできることです。 autoloadを認識するということ ス

              PHPStanで始めるPHPのための静的解析 #phperkaigi
            • [PHP]安定したシステム運用を目指して取り組んだこと - Qiita

              はじめに PHP7へのverupをきっかけに 安定したシステム運用 保守しやすいコード を目指し、少しずつ色々なことを試みています。 この記事では、私が行なっているコード改善の取り組みを共有したいと思います。 一般的なものしか書いていないかもしれませんが。。。 スタイルガイドを守れているかphpcsを使ってチェックする 私が参加しているプロジェクトにはpearベースのスタイルガイドがあるにはあったのですが、 出来上がったコードを機械的にチェックする仕組みがありませんでした。 PHP7へのマイグレーションを契機に、コードがスタイルガイドに沿って書かれているかPHP_CodeSnifferを使って機械的にチェックするようにしました。 このツールは有名ですので説明は不要かもしれませんが簡単に説明すると、 phpcs : 定義したスタイルガイドに違反していないかチェックする phpcbf : コー

                [PHP]安定したシステム運用を目指して取り組んだこと - Qiita
              • 10年開発してきたPHPアプリケーションにPHPStanを導入した - BASEプロダクトチームブログ

                Tech Dept. 基盤グループエンジニアの @tenkoma です。 BASEには50以上のPHPプロジェクトのプライベートリポジトリがあります。 (アプリケーションは十数個で、残りの多くが、アプリケーションが依存するライブラリです) 過去4年ほどの間に新規に作られたリポジトリにはほぼ最初からPHPStanが導入されていますが、それ以前から開発していたリポジトリには導入されていないものが多数ありました。 それらのリポジトリにPHPStanを導入していったので、なぜ導入したか、導入方法、得られた効果について紹介します。 PHPStanとは PHPコードを実行せずに、実行時にエラーになりうる箇所を検出するツールです。PHPStanを利用しCIに組み込むと、テスト実行せずに検出できるバグの一部は、PHPStan解析で指摘してくれるので、コードレビューの負担が減ることが期待できます。 なぜPH

                  10年開発してきたPHPアプリケーションにPHPStanを導入した - BASEプロダクトチームブログ
                • PHPの現場

                  48. キャリアと開発の力点の変遷(hidenorigoto) @hidenorigoto さんと、キャリアと開発の力点の変遷、システム開発と人などについて話しました。 後藤さんのキャリア プレイヤ、プレイングマネージャ期 エンジニアリングマネージャ期 CxO 期 設計への道 設計を学んで上手くいったこと エンジニアリングマネージャ マイクロサービス化へのチャレンジ 自分で技術を理解して判断できるようにする ソフトウェアじゃない問題も大事 俯瞰してみる CxO 会社全体を考えてエンジニアリングを捉える ビジネスのモデルを考える 正しさよりも上手くワークするかどうか 正しさを求めたいエンジニアとの対話 ワークすることを重視する原点 システム開発と人 事業で扱われるデータを軸にする 誰のための設計 より事業に効果的なソフトウェア開発 正解の無い世界 配信日:2022-07-18 収録時間:1:

                    PHPの現場
                  • WEB+DB PRESS連載『PHP大規模開発入門』を振り返る - pixiv inside

                    2024年4月26日追記 WEB+DB PRESS総集編[Vol.1~136]が発売されたので、今後はぜひこちらをお買い求めください gihyo.jp pixiv運営本部 技術基盤チームのうさみけんた(@tadsan)です。 2018年4月26日に技術評論社さまからWEB+DB PRESS総集編 [Vol.1~102]が発売されます(一部書店には既に並んでいるようです)。これは2000年12月に発売されたWEB+DB PRESSの創刊号から102回までの全バックナンバーのPDFを収録した、超大ボリュームの総集編(WEBからもダウンロード可能)です。 17年に及ぶWEB+DB PRESSの歴史の中で、ピクシブ株式会社も2014年から2017年までの間、連載企画『PHP大規模開発入門』を執筆・掲載させていただきました。 連載記事一覧 連載各回の内容は以下の通りです。 Vol.80 「モダンな開

                      WEB+DB PRESS連載『PHP大規模開発入門』を振り返る - pixiv inside
                    • SonarQubeでPHPのコードを静的解析する - Qiita

                      2019-02-10 追記: SonarQubeではなくPHPStanで同様のことをする記事も書きました。いま個人開発ならこちらがを選ぶことも多そうです。 LaravelプロジェクトのコードをCircleCI上のPHPStanで静的解析してreviewdogにコメントしてもらう SonarQubeはオープンソースの静的解析ツール 一言で言うと「コードのダメな部分を教えてくれるやつ」です。LGPLライセンス。 下のようなこんな感じでコード品質の推移が一覧できます。また、コードごとに何が悪いのか、どう直すべきなのかを見ることができます。(画像はDrupalの解析結果) オンプレ環境で使えるのがメリットで、GitHubで個人のプロジェクトを解析するなら、各種静的解析SaaSを使うのが簡単なのでおすすめです。 PHP向け静的解析SaaSの主観的比較 (Scrutinizer, SensioLabs

                        SonarQubeでPHPのコードを静的解析する - Qiita
                      • 生みの親が語る“Vimの27年”とこれから ―「VimConf 2018」レポート:レポート|gihyo.jp … 技術評論社

                        VimConfは、テキストエディタVimのユーザーと開発者のための国際カンファレンスです。2018年11月24日に東京 秋葉原でその6回目となるVimConf 2018が開催されました。 今回の目玉は、Vimの作者Bram Moolenaarさんの登壇です。運営の方によると、Bramさんの招致はずっと夢だったようで、何ヵ月もの交渉を経て講演が決まった際は嬉しかったそうです。 本レポートは、LTを除くセッションの内容を中心にお送りします。 オープニング キーノート『What is the next feature? - Who makes next feature of Vim』 ― mattn mattnさんは、日本のVimコミュニティ vim-jp のキャプテンとして活動を続けられている方です。書籍『Vimテクニックバイブル』や『Vim scriptテクニックバイブル』の執筆に携わり、雑

                          生みの親が語る“Vimの27年”とこれから ―「VimConf 2018」レポート:レポート|gihyo.jp … 技術評論社
                        • CircleCIで勝手に強くなる静的解析の作り方 - Cybozu Inside Out | サイボウズエンジニアのブログ

                          こんにちは。Garoonチームの杉山(@oogFranz)です。 以前 #PHPerKaigi 2020 にて、「静的解析の育て方」というタイトルで発表いたしました。この発表ではレガシープロダクトにおいて静的解析が有効であることと、「育てる」という比喩表現で静的解析のルールを強くしていく戦略についてお話ししました。 発表後のAsk the Speakerでは様々な方から講演へのフィードバックをいただき、特に既存のプロダクトに静的解析の導入・運用する大変さやその改善方法に関して議論を深めることができました。議論に参加いただいた皆様大変ありがとうございました。 議論の中でルールを自動的に強くしていく方法のヒントをいただきました。そのヒントを元にCircleCIで勝手に強くなる静的解析が実現ができたので紹介したいと思います。 勝手に育つ静的解析の作り方 通常、レガシープロダクトにおいて静的解析を

                            CircleCIで勝手に強くなる静的解析の作り方 - Cybozu Inside Out | サイボウズエンジニアのブログ
                          • PHPerのための「PHPと型定義」を語り合う【PHP TechCafe イベントレポート】 - RAKUS Developers Blog | ラクス エンジニアブログ

                            弊社で毎月開催し、PHPエンジニアの間で好評いただいているPHP TechCafe。 2023年5月のイベントでは「型定義」について語り合いました。 弊社のメンバーが事前にまとめてきた情報にしたがって、他の参加者に意見を頂いて語り合いながら学びました。 今回はその内容についてレポートします。 rakus.connpass.com PHPと型 静的型付け言語 動的型付け言語 一般的な誤解 PHPの型 単一の式が持つ型 型システムで扱える型 never型について void型について self,parent,static型について resource型について evalでresource型を宣言すると リテラル型について ユーザー定義型について 複合型について 型のエイリアス mixed iterable PHPで取り入れられた型表現 型宣言のメリット PHPの歴史を振り返る PHPのドキュメント

                              PHPerのための「PHPと型定義」を語り合う【PHP TechCafe イベントレポート】 - RAKUS Developers Blog | ラクス エンジニアブログ
                            • PHP Conference Japan 2020 スライドまとめ - Qiita

                              PHP Conference Japan 2020 Re:born 公式サイト: https://phpcon.php.gr.jp/2020 公式YouTubeチャンネル: https://www.youtube.com/user/PHPConferenceJP 公式ツイッター: https://twitter.com/phpcon 公式Discord: https://twitter.com/phpcon/status/1337547720806989824?s=20 ハッシュタグ: #phpcon #phpcon2020 日時: 2020.12.12 SAT YouTube Live PHP Conference Japan 2020 - Track 1 PHP Conference Japan 2020 - Track 2 PHP Conference Japan 2020 - Tr

                                PHP Conference Japan 2020 スライドまとめ - Qiita
                              • ラクスのPHPエンジニア12人によるPHPカンファレンス2020参加レポート - RAKUS Developers Blog | ラクス エンジニアブログ

                                はじめに 株式会社ラクス 配配メール開発課のPHPエンジニア Jazumaです。 2020年12月12日(土)にPHPカンファレンスが開催されました。 phpcon.php.gr.jp 例年では「大田区産業プラザ PiO」で開催予定でしたが、今年は新型コロナウイルスの影響でオンライン開催となりました。個人的にはオンライン開催である分、地方のエンジニアでも気軽に参加することができたのは良かったのではないかと思います。 ラクスはPHPカンファレンスにスポンサーとして参加させていただいている他、社内からLT枠で2名が登壇しました。 今回はPHPカンファレンスに参加した社内のPHPエンジニアがイベントをレポートしましたので、ご紹介したいと思います。 各セッションのスライドについては以下にまとめましたので、ご活用いただければ幸いです。 No タイトル 1 SPAのAPI開発の「やりづらさ」をDDDと

                                  ラクスのPHPエンジニア12人によるPHPカンファレンス2020参加レポート - RAKUS Developers Blog | ラクス エンジニアブログ
                                • 知らない技術まみれのチームに移動した時に実践したこと - がんばるぞ

                                  この記事はスターフェスティバル Advent Calendar 2022 11 日目の記事です qiita.com 昨日は @shota1995m の オブジェクト指向 UI デザインを読んだから図解してみる でした はじめに 僕は生粋(?)の PHPer なので、PHP 以外の技術はなんちゃってレベルでしか触ったことがないのですが 知らん言語(TypeScript)、知らんフレームワーク(Koa, NestJS, commander)、知らんミドルウェア(Apache Kafka)、知らんその他諸々(Protocol Buffers, Terraform)を使ってるチームに移動して難易度が高めな課題に取り組むことになったため、効率的に技術をキャッチアップできないと終わると思いヒィヒィ言いながらがんばったことを共有します やったこと 座学の時間をガッツリとる まずは手を動かす方が有効な場面

                                    知らない技術まみれのチームに移動した時に実践したこと - がんばるぞ
                                  • PHPコードの静的解析ツールたち - Innovator Japan Engineers’ Blog

                                    複数人で開発していると、コードの書き方(インデントやブレスでの改行など)について意見が分かれることがあるかと思います。 また、PHP7.0以降で使えるタイプヒントは、宣言した型が不一致だとエラーになってくれますが、実行するまでエラーになるかわかりません。 安心安定の開発にはこれらが障害になりますので、静的解析によって排除しましょう。 今回はそのためのツールと簡単な使い方を書きます。 PHP_CodeSniffer PHPMD PHPStan Larastan 余談 おわりに PHP_CodeSniffer github.com 決められたコーディング標準を守っているかをチェックするツールです。 ここではPSR-12への準拠をチェックする例を示します。 導入 ルールファイル(phpcs.xml)作成 実行 # Composerで導入 $ composer require --dev squi

                                      PHPコードの静的解析ツールたち - Innovator Japan Engineers’ Blog
                                    • 条件付き戻り値型とPHPStan 1.6.0の新機能 - 超PHPerになろう

                                      この記事はPHPStan開発者のOndřej Mirtesによって2022年4月26日にPHPStan Blogに書かれた記事を翻訳したものです。 phpstan.org 条件付き戻り値型 (Conditional return types) この機能の大部分はRichard van Velzenが開発しました。 PHPStanは初リリース以来、関数呼び出しで渡された引数によって様々な型を返す方法を提供してきました。いわゆる動的戻り値型拡張(dynamic return type extensions)は非常に柔軟です。実装できる任意のロジックによって型を解決できます。しかし、PHPStan拡張の核心となるコンセプトには学習コストがかかります。 PHPStan 0.12ではジェネリクスが導入されました。これはPHPDocの特別な記法によって動的戻り値型拡張が必要だったケースの一部をカバーし

                                        条件付き戻り値型とPHPStan 1.6.0の新機能 - 超PHPerになろう
                                      • PHP - The Wrong Way とは何だったのか - なんたらノート第三期ベータ

                                        これは PHP Advent Calendar 2017 - Qiita の12日目の記事です。 わたくし先月、PHP - The Wrong Way を日本語に翻訳しました。 www.phpthewrongway.com 衝撃の扉絵はご覧いただけましたでしょうか。 これは2017年の Symfony Live London で Laravel を笑い者にしている様子 を描いた風刺画です。 うそですけどね。 でもどうですか、そういう絵だといえばそう見えませんか? ロンドンでの事件は Laravel と Symfony の間にある摩擦ですが、それと相似な関係は、ユーザーコミュニティ全体と Laravel のようなものとの間にこそ、より深刻な状態で横たわっているのではないでしょうか。このロンドンのブーメランは、自分の翻訳進捗にずいぶん影響しました。 実を言うと自分は、あまり多くの人に PHP

                                          PHP - The Wrong Way とは何だったのか - なんたらノート第三期ベータ
                                        • PHPMD - PHP Mess Detector

                                          This is the project site of PHPMD. It is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD. PHPMD can be seen as an user friendly and easy to configure frontend for the raw metrics measured by PHP Depend. What PHPMD does is: It takes a given PHP source code base and look for several potential problems within that source. These problems can be things l

                                          • PHP の Carbon をだいたい 3 倍くらい高速化した話 (または composer-patches の使い方) - COLOPL Tech Blog

                                            こんにちは。 Platform Engineer の工藤です。 今回は PHP で利用される日時ライブラリ nesbot/carbon の速度をだいたい 3 倍くらい高速化した話について紹介させていただきます。 nesbot/carbon について carbon.nesbot.com github.com nesbot/carbon は PHP で日付・時刻を扱うためのライブラリで、 PHP 標準の ext-date を拡張し、より利用しやすい形で提供してくれます。PHP のアプリケーションフレームワークで有名な Laravel でも標準で採用されており、昨今のプロジェクトだと基本入っている場合が多いと思います。 バージョンアップでパフォーマンスが悪化 便利な nesbot/carbon ですが、 Laravel 6 の EOL による Laravel 9 へのアップグレード対応の際、大幅

                                              PHP の Carbon をだいたい 3 倍くらい高速化した話 (または composer-patches の使い方) - COLOPL Tech Blog
                                            • PHPDocを使ったPHPのジェネリクス - 超PHPerになろう

                                              この記事はPHPStan開発者のOndřej Mirtesによって2019年12月2日に書かれた記事を翻訳したものです。記事の末尾には訳者(@tadsan)の観点によるPhan, Psalm, PhpStormとの互換性についての情報も記述しています。 medium.com 2年前、私(Ondřej Mirtes)はユニオン型と交差型についての衝撃的な記事を書きました。PHPコミュニティがこれらの概念に馴染むのを手助けし、PhpStormでの交差型サポートにつながりました。 ユニオン型と交差型の違いは開発者が認識すべき静的解析に役立つ重要な概念なので、私はその記事を書きました。今回は同様に、PHPStan 0.12で導入されたジェネリクスについて、それが何であるかを説明したいと思います。 無限のシグネチャ 関数宣言するとき、我々は関数に付属する単一のシグネチャを書いていました。ほかの選択肢

                                                PHPDocを使ったPHPのジェネリクス - 超PHPerになろう
                                              • PHPコードの解析をPhanからPHPStanに移行しようか検討しています - コネヒト開発者ブログ

                                                こんにちは、サーバーサイドのお仕事してます金城(@o0h_)です。 7月は「波よ聞いてくれ」と「ベアゲルター」が共に出るという、嬉しい事態でした。沙村作品は魅力的なキャラクターがいつも多いですが、その中でも女性キャラの強さ・芯の太さに圧倒されます。 [まとめ買い] ベアゲルター さて、今回はタイトルの通り「(静的)解析どうするの」という問題について少し考えている事をまとめてみます。 「Phan」か「PHPStan」か、どっちが良いでしょうか? 現在コネヒトではPhanを導入してコードをチェックしています。 「道具で安心感を得られる」のは最高なので、Phanもまた最高なのです。しかしながら、実際に日常的に回していく中で、いくつか気になっていることもあります。 実行に時間がかかる (プロダクトでは利用しない)php-astエクステンションが必要になる エラーが発生した時の原因箇所の特定が大変

                                                  PHPコードの解析をPhanからPHPStanに移行しようか検討しています - コネヒト開発者ブログ
                                                • 『はじめてのPHPプロフェッショナル開発』という本が出版されます - comix

                                                  このたび生まれて初めて本を出版することになりました! 『TECHNICAL MASTER はじめてのPHPプロフェッショナル開発 PHP7対応』というタイトル(以下、プロフェッショナル本)で2019年2月26日(火)に秀和システムさんから発売されます。 会社の同僚と書いたので、是非買ってください!(石直球) しかし「せっかく買ったのに思ってたんと全然違うやんけ!」となるのも申し訳ないので、プロフェッショナル本がどういう本なのか簡単に紹介したいと思います。 プロフェッショナル本の概要 一言で言うと プログラミングの入門書を読み終えた人が、実際の開発現場で活躍するために必要なアレコレをPHPを題材に解説している本 です。ボリュームは実質390ページほどになります。中身は導入編、入門編、実践編、発展編の4つのパートで構成されています。 最初の導入編では昨今のPHPとそれを取り巻くエコシステムを紹

                                                    『はじめてのPHPプロフェッショナル開発』という本が出版されます - comix
                                                  • PHPコードでの、`empty()`避けようねとか`===`のほうがベター、などは phpstan/phpstan-strict-rules を使って指摘しよう - Software engineering from east direction

                                                    TL;DR PHPアプリケーションにおいて、表題のような「PHPを使う上で自制心を持とうな」みたいな温度感でstrictな書き方を推奨される昨今 こういうのは往々にして人間が言うのはそのうちげんなりしてくるし、逆に言われる方も同じ PHPStanが提供しているカスタムルール phpstan/phpstan-strict-rules を使おう 前提 PHPStanを使うことを前提としています。 phpstan/phpstan-strict-rules github.com PHPStanは、「PHPStanでCustomRuleを作る」という発表でも解説されている通り、任意のカスタムルールをクラスとして定義することで、ルールを追加できます。しかし、すでにPHPStanが提供しているルールもいくつかあります。その一つが phpstan/phpstan-strict-rules です。 導入方法

                                                      PHPコードでの、`empty()`避けようねとか`===`のほうがベター、などは phpstan/phpstan-strict-rules を使って指摘しよう - Software engineering from east direction
                                                    • 小数点の罠:メンバーシップポイント計算の裏側 - BASEプロダクトチームブログ

                                                      はじめに この記事はBASEアドベントカレンダーの四日目の記事です。 こんにちは!私は@shiiyannnと申します。現在、メンバーシップ Appの開発に携わっています。メンバーシップ Appはショップオリジナルの「メンバーシップ」(会員制度)を作成することができる機能です。 2023年9月、メンバーシップ Appは大幅な機能アップデートを遂げました。今回のアップデートでは、ショップオーナーが商品購入時に独自のポイントを付与できるようになりました。付与されるポイントの量は、注文金額にショップオーナーが設定したポイント付与率を掛け合わせて計算されます。 この記事では、ポイント付与機能の開発中に直面した、浮動小数点計算の問題とその解決策についてお話しします。この問題を深掘りすることで、料率計算や金額処理に取り組む開発者の皆さんに有益な情報を提供できればと考えています。 リリース直前に発見した浮

                                                        小数点の罠:メンバーシップポイント計算の裏側 - BASEプロダクトチームブログ
                                                      • 5千ファイル超のレガシープロジェクトにPHPStan継続的静的解析を導入|Komiyama Taki|note

                                                        以前、断捨離でテーブル約50個消した話で、大規模にdbまわりのリファクタリングをした話を書きました。 弁護士ドットコムのサイトは、10年以上運用されているため、5千ファイルある巨大PHPプロジェクトです。そのため、課題はいろいろあります。 弁護士ドットコム - 無料法律相談や弁護士、法律事務所の検索 https://www.bengo4.com/ 今回は、PHPStan静的解析をCIに導入し、継続的なコード品質の向上を目指しました。 静的解析を導入する目的コードベースが長年の拡張により巨大になった結果、全ての関数やclassの使用箇所を目視で把握するのは、厳しくなってました。いくら注視していても、対象が広くなるほど漏れは発生しやすくなります。 そのため、人間の目では見落としやすいバグを機械的に見つけることで、コード品質の向上に繋がると考えました。PHPStanをCIでレビュー前に回すことで

                                                          5千ファイル超のレガシープロジェクトにPHPStan継続的静的解析を導入|Komiyama Taki|note
                                                        • GitHub Actions上でdocker composeを使ってCIを回すためにうまいことキャッシュする方法 - Qiita

                                                          docker compose on GitHub Actions 昨今ではDocker(コンテナ)を使った環境整備が主流になってきています。アプリケーションの実行環境自体をコード化できるため、開発環境間の差異や、本番環境の差異を吸収し、アプリケーションの開発に集中することができます。 一方、CIとDockerの相性はなかなかに良くないです。Dockerの肝はイメージやレイヤーのキャッシュにより、初回のダウンロード以降は爆速に使えることですが、環境がある程度リセットされてしまうCI環境で愚直にDockerを動かすコードを書くと数百MB単位のイメージのダウンロード、ビルドが毎回走ることになり、Dockerを準備する処理でCIの処理の大半が使われてしまうこともままあります。 今回はDockerによる環境のカプセル化の恩恵を受けつつ、GitHub Actionsでdocker composeを動か

                                                            GitHub Actions上でdocker composeを使ってCIを回すためにうまいことキャッシュする方法 - Qiita
                                                          • PHPについて語り合うイベント『PHP TechCafe』の反響が大きかったイベント10選 - RAKUS Developers Blog | ラクス エンジニアブログ

                                                            はじめに こんにちは、MasaKuです。 弊社では、PHP に関する最新ニュースの発信や気になるお題について議論するイベント「PHP TechCafe」を毎月開催しております。 本日は、PHP TechCafe とはどんなイベントなのかのご説明と、過去開催したイベントの中で特に盛り上がったイベントをご紹介させていただきます。 Web × PHP TechCafe はじめに PHP TechCafeの目的 立ち上げからの経緯 参加対象者とその理由 運営メンバー テーマ選定方針 コンテンツ作り 特に評判の良かったテーマ10選 PHPerのための「PHPと型定義を語り合う」 PHP TechCafe PHPerのための「PHPのリーダブルなコード」を語り合うPHP TechCafe PHPerのための「Laravel10の新機能」を語り合う PHP TechCafe PHPerのための「PHPD

                                                              PHPについて語り合うイベント『PHP TechCafe』の反響が大きかったイベント10選 - RAKUS Developers Blog | ラクス エンジニアブログ
                                                            • このPHP QAツールがすごい!2019

                                                              このPHP QAツールがすごい!2019 1. PHP Conference Japan 2019 Dec 01, 2019 2. https://www.meti.go.jp/policy/it_policy/softseibi/metrics/product_metrics.pdf 3. ◼ ◼ ◼ ◼ ◼ ◼ ◼ ◼ 4. ツールの歩み brief history around PHP QA tool 5. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ~ 2007 6. 2008 ~ 2011⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ 7. 2012 ~ 2015⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ 8. https://qafoo.com/talks/16_10_internation_php_conference_automating_architecture_constraint_check

                                                                このPHP QAツールがすごい!2019
                                                              • Laravel.shibuya #4に参加して超PHPerになるための手掛かりを得た #laravelshibuya - 超PHPerになろう

                                                                Laravel.shibuyaは渋谷の5人のイカしたLaravelギャングどもが今年の5月から定期開催するミートアップです。 laravel-shibuya.connpass.com よくあるセッション中心の技術勉強会とは異なり、Laravel.shibuyaはIRT(Interactive Round Table)、つまり座談会による参加者同士の議論が主体の構成です。参加者は複数の会議室に分かれて、それぞれ少人数で議論を行います。今回は「PHP IRT」「Laravel IRT」「PHP Beginner IRT」「Laravel Beginner IRT」の4つに分かれ、20分のターンを3回繰り返す構成です。参加者は休憩時間に別の部屋に移動することができます。 PHP Track 私はLaravel JP Conference 2019の当日スタッフを請け負って懇親会LTまで引き受けて

                                                                  Laravel.shibuya #4に参加して超PHPerになるための手掛かりを得た #laravelshibuya - 超PHPerになろう
                                                                • PHPerKaigi 2024【参加レポート】 - RAKUS Developers Blog | ラクス エンジニアブログ

                                                                  はじめに メールディーラー開発課のyamamuuuです。 2024/03/7(木) ~ 03/9(土)の3日間に渡ってPHPerKaigi 2024が開催されました。 今回もオンライン・オフライン両方のハイブリッド開催でした。 phperkaigi.jp ラクスはシルバースポンサーとして協賛し、3名が登壇した他、数名のメンバーが参加しました。 今回はラクスからの登壇者本人と参加者によるレポートを紹介させていただきます。 はじめに 参加レポート php-src debug マニュアル 10年モノのレガシーPHPアプリケーションを移植しきるまでの泥臭くも長い軌跡 ウキウキ手作りミニマリストPHP Laravel OpenAPIによる "辛くない" スキーマ駆動開発 こんな静的解析導入は負けフラグ 帰ってきた「完成度低いの歓迎LT大会」(PHPerKaigi出張版) WebAssembly を理

                                                                    PHPerKaigi 2024【参加レポート】 - RAKUS Developers Blog | ラクス エンジニアブログ
                                                                  • プロジェクト内のライブラリをロードしつつ、ブラウザで動作するPHPStan Playground - pixiv inside

                                                                    こんにちは。開発支援チームでpixivのコーディング環境の向上をしているyosatakです。 pixivではPHPStanを活用して、スクリプト言語であるPHPのコーディング上のミスをデプロイ前に検出しています。 inside.pixiv.blog PHPStanは開発者にエディタを強制したりせずに静的な型検査ができるだけではなく、入力のアサーション関数などに対してPHPStan拡張を書くことでリクエストパラメータなどの不確定な入力に厳密に型をつけ、PHPで安全にコーディングすることができるようになります。 それでも、10年以上メンテナンスされつづけているpixivのソースコードに型を付けていくのは容易ではありません。 PHPStanで特定のファイルの解析を掛けたい場合は、autoloadするファイルをbootstrapFilesに指定されたphpstan.neon(.dist)が設置され

                                                                      プロジェクト内のライブラリをロードしつつ、ブラウザで動作するPHPStan Playground - pixiv inside
                                                                    • 【PHP8.2】PHP8.2がリリースされたので新機能全部やる - Qiita

                                                                      PHP8.3 / PHP8.2 / PHP8.1 / PHP8.0 2022/12/08にPHP8.2.0がリリースされました。 大きな新機能については、PHP8.0以降公開されるようになったランディングページで見ることができます。 ここでは、概要だけではなくUPGRADINGに載っている変更点を全部見て回ることにします。 Backward Incompatible Changes 下位互換性のない変更点。 Date DateTime::createFromImmutable() now has a tentative return type of static DateTime::createFromImmutable()の返り値の型がstatic型になりました。 以前はDateTime型でした。 これはphpstanのバグへの対応です。 class CustomDateTimeImmu

                                                                        【PHP8.2】PHP8.2がリリースされたので新機能全部やる - Qiita
                                                                      • 【株式会社ラクス】SaaSプロダクト別の技術スタックを一挙公開! - RAKUS Developers Blog | ラクス エンジニアブログ

                                                                        (本記事は2023/10/2時点の情報にアップデートしております) こんにちは、技術広報のyayawowoです。 突然ですが、株式会社ラクスと聞いて何を思い浮かべますでしょうか? 弊社ラクスでは、様々なプロダクトを展開していますが正直認知度は低いと思っております。 そこで今回、弊社についてもっともっと知っていただくため・・・ ラクスが展開している全10プロダクト 全10プロダクトの技術スタック インフラ/SRE/デザイナーの技術スタック について、ご紹介させていただきます! SaaS開発に携わる方、弊社に少しでも興味を持っている方の一助となれば幸いです! ラクスが展開している全10プロダクトとは? バックオフィス向け フロントオフィス向け 10プロダクトの技術スタック 楽楽販売 楽楽精算 楽楽明細 楽楽電子保存 楽楽勤怠 MailDealer 配配メール Curumeru blastmai

                                                                          【株式会社ラクス】SaaSプロダクト別の技術スタックを一挙公開! - RAKUS Developers Blog | ラクス エンジニアブログ
                                                                        • 【最強のプルリクレビュー環境】 GitHub ActionsとPHPStanを繋げてPRのコード上に自動で静的解析のエラーが出てくる仕組みを作る - Qiita

                                                                          【最強のプルリクレビュー環境】 GitHub ActionsとPHPStanを繋げてPRのコード上に自動で静的解析のエラーが出てくる仕組みを作るPHPGitHubPHPStanGitHubActions GitHubでプルリクをレビューするとき、こんな風にコード上に勝手にエラーがあるよ!って表示されたら嬉しいなあということがあります。 わざわざCIの実行結果を見に行ってひとつひとつエラーを確認するのは面倒ですからね。 というわけで、今回は上の画像のように自動でエラーがコード上に現れて教えてくれる環境をGitHub Actionsで作りたいと思います。 大前提 PHPStanがプロジェクトに導入されている 今回はPHPStan 1.5.4を使用して検証しています PHPStanが入ってないと話が始まらないので、まずは入れておきましょう。 GitHub ActionsからPHPStanが走るよ

                                                                            【最強のプルリクレビュー環境】 GitHub ActionsとPHPStanを繋げてPRのコード上に自動で静的解析のエラーが出てくる仕組みを作る - Qiita
                                                                          • PHPフレームワークのバージョンアップを支える技術 - コネヒト開発者ブログ

                                                                            GWいかがでしたでしょうか? 私はひたすらに「何もしないぞ!」を徹底した結果、漫画を読んで「色々な世界を旅して」「色々な出会いと別れを繰り返して」過ごしました。 その中でも、「子供はわかってあげない」を久しぶりに読み返し、 人は教わったことなら教えられるんだよ からの 僕は誰にも教わってないんだ。・・・だから教えるのが難しいの当たり前なんだなって思って・・・少し楽になったかな というくだりにグッと来ました。 「教えられることがある」や「教えてくれる」というのは、それだけで尊いものだな〜というリスペクトを忘れないようにしようと思うのと同時に、自分や他人の「持てるもの・持てないものを見極めて、許したり奮ったりしてけたらな」とも思いました。 なんにせよ、他人に教えられる人はすごい!🎉 子供はわかってあげない(上) (モーニング KC) さて、こんにちは、サーバーサイドやっております 金城 (@

                                                                              PHPフレームワークのバージョンアップを支える技術 - コネヒト開発者ブログ
                                                                            • 株式会社インフィニットループは今年も The PHP Foundation に寄付をしました|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

                                                                              株式会社インフィニットループは今年も The PHP Foundation に寄付をしました こんにちは、仙台支社のいがらしです。インフィニットループは前回、前々回に引き続き、今年も会社として、The PHP Foundation に寄付をしました。 TL;DR この記事では以下について述べています。 The PHP Foundation は PHP そのものの開発を支援する団体で、多くの成果をあげてきました 言語の継続性と更なる発展には私たちに限らず、多くの企業からの支援が必要です PHP の存続と発展のため、みなさんの会社でもぜひ寄付を検討してみてください 勝率を上げる賭け方がある 現代人はとても忙しく、世にはありとあらゆる種類の情報があふれており、限られた時間の中で読める文章の量は限られています。 今、冒頭の 3 行まとめを乗り越えてこの記事を読み進めているあなたは、きっと PHP

                                                                                株式会社インフィニットループは今年も The PHP Foundation に寄付をしました|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ
                                                                              • GitHub - phpstan/phpstan: PHP Static Analysis Tool - discover bugs in your code without running it!

                                                                                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

                                                                                  GitHub - phpstan/phpstan: PHP Static Analysis Tool - discover bugs in your code without running it!
                                                                                • 大改修!PHPレガシーコードビフォーアフター (2019/11/30 13:00〜)

                                                                                  イベント概要 PHPの匠によるビフォーアフター、見てみたいですよね? このイベント主催の長谷川は、PHPerKaigi や iOSDC Japan といったカンファレンスを主催し、その運営をサポートするために fortee というシステムを開発・運営しています。 https://fortee.jp fortee は2017年12月から開発を開始し、それ以降長谷川が主催した4つのカンファレンスと、深く関わったいくつかのカンファレンスのために追加開発を続けてきました。 その結果、長年にわたって運用しつつ継ぎ足し継ぎ足し開発されたシステムには技術的負債がたまり、たいへんツライ状態になってきています。 「マイクロサービスとはほど遠いモノリシックなコード」 「テストがごく一部しか存在しない」 「突然現れる巨大なコントローラ」 「テンプレートに書かれた if 文」 「バージョンアップに追従していないフ

                                                                                    大改修!PHPレガシーコードビフォーアフター (2019/11/30 13:00〜)