27
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

闇の魔術に対する防衛術Advent Calendar 2018

Day 4

PHPと死のvendor PHP案件でvendorを魔改造するバッドノウハウに対抗する

Last updated at Posted at 2018-12-03

この記事は 闇の魔術に対する防衛術 Advent Calendar 2018 の4日目の記事です。

昨日は @teradonburi さんの Headless CMSとWordPressの囚人 でした。

TL;DR

forkしたリポジトリをcomposer.jsonにrepositories を追加する

愚痴

引き継いだ案件やよく分かってない開発者がvendor以下のライブラリを書き換えてgitに突っ込んできた事って有りませんか?
私は年1,2回あります。composer update とか出来なくて困る。アップデート後コンフリクトすると大変
そんな死んだvendorを解放するための防衛術を教えます。

本題

ライブラリを改変したいときってどういう時でしょうか

  • バグがある
  • 機能が足りない
  • エラるので取りあえず try catch を埋める (←やめて

思いつく限りでよく遭遇するのはこんな感じです。
バグがある場合は素直に該当ライブラリをforkしてプルリクを送りましょう。
機能が足りない場合も、forkしてプルリクするのがいいですが、プロジェクトの方針によって採用されない機能だったり
メンテナンス期間のバージョンには取り入れてもらえない事もあるでしょう。
また、バグ修正もそうですが、ノーメンテリポジトリの場合はマージされることはないでしょう
(そもそもそういうライブラリは採用しない)

そんな時、どうすれば良いか。

  1. 魔改造したライブラリをgithubにアップする
  2. composer.json に repositories を追加する 方法はこちら
  3. repositoriesに書いた方が優先して読み込まれる。同名でも自分で登録した物が利用される
  4. できれば魔改造したライブラリはfork元にアップデートを追従させる

という感じでオレオレライブラリとして公開して対応しましょう!

もちろん、できれば

  • サポート切れのライブラリは使わない(フレームワークとか特に)
  • ノーメンテっぽいライブラリは避ける

ことを先にやった方が良いと思います!

明日は @neutron63zf さんの 投稿です!

27
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?