web-dev-qa-db-ja.com

複数の開発者とPHP mysqlプロジェクトを開発するための最良のアプローチ

私たちはPHP-mySQLWebプロジェクトに取り組んでいる4人の開発者です。現在、以下のように連携しています。DBを除くすべてのプロジェクトファイルはGitHubでホストされています

  • DBを除くすべてのプロジェクトファイルはGitHubでホストされています
  • DBは本番サーバー上にあります
  • ローカルWebサーバーとphpがインストールされ、ローカルで動作しています。DBへの接続はリモートです。したがって、データベースは常に同期しています。
  • 各開発者はGitHubからプルし、変更をGitHubにプッシュします
  • サーバーはGitHubからプルしてWebサイトを更新します

私たちがこれまでに直面した問題は

  • サーバー上のGitHubからのプルは、手動またはcronジョブによって実行されます。私はそれが正しい選択だとは思いません。
  • ローカルマシンはリモートのmySQL接続を使用しているため、クエリの実行中にタイムアウトが発生します。

だから私は私たちの状況のた​​めのより良いアプローチが何であるかわかりませんか?

2
Hadu
  1. Webサイトの更新については、WebHookを設定できます(Github->リポジトリ-設定-> Webhook)。リポジトリへのプッシュが発生すると、カスタムURLを呼び出すことができます。

  2. アプリケーション、インターネット接続、またはMySQLサーバーのいずれかに問題があります。リモートデータベースを使用した設定は珍しくありません。実際には、安定した接続を維持できるはずです。

-その他:@ Evgenyが言ったように、CIサーバー(Jenkins、TeamCityなど)を使用できますが、実際にはプロジェクトの複雑さに依存します。継続的インテグレーションでそのようなパイプラインをセットアップすることは「簡単なこと」ではないからです。

1
synthomat

まず、継続的インテグレーションツールのいくつかを使用する必要があると思います。私が知っている中で最も優れているのはJenkinsです。私はあなたがこれについていくらかの研究をしなければならないと思います。これはそれほど難しいことではありませんが、非常に便利です。次に、同様の開発環境を考えなければならないと思います。 Dockerがこれを支援します。

Dockerのリンクは次のとおりです: https://docs.docker.com/get-started/ Jenkinsのリンクは次のとおりです: https://jenkins.io/doc/

1
Evgeny Svirsky