Als Team (Programmierer, Templater) suchen wir noch nach optimalen Arbeitsweisen und Grund-Einstellungen unserer PHPStorm-IDEs. Im Moment leidet unsere Produktivität an dem Wildwuchs aus verschiedenen Ansätzen. Darum hier die Frage nach den Best Practice im Zusammenhang mit der PhpStorm-IDE
1) Wo arbeiten?
Wir haben einen zentralen internen Linux-Develop-Server. Der ist nicht der Schnellste. Die Arbeitsrechner sind schnelle Windows-Rechner. Der Linux-Server ist zusätzlich mit einer Sambafreigabe als Windows-Laufwerk bei allen Mitarbeitern eingebunden.
Alle Mitarbeiter haben den Shop auf dem internen Linux-Develop-Server per SSH installiert.
Einige haben Ihre IDE so eingerichtet, das sie direkt auf der langsamen Samba-Freigabe arbeiten. Andere arbeiten lieber auf Ihrem lokalen SSD-Laufwerk.
Um die Dateien initial auf Ihr SSD-Laufwerk zu bekommen, haben einige vom Develop-Server zuerst 1:1 synchronisiert. Andere haben ein PHP+Composer auf Windows installiert, um dort eine zweite “Datei”-Installation der Shops zu haben, also ohne DB und lauffähige Installation. Anschließend haben sie dann in phpStorm ein Permanent-Deployment auf den Develop-Server eingerichtet und lassen so Ihr System zwischen SSD und Linux-Develop-Server synchron.
Die SSD-Fraktion profitiert natürlich von der schnellen SSD.
Wie und wo arbeitet Ihr?
2) Repositories
Alle betrachten mit Ihrem phpStorm Ihre Shopinstallation (sei es direkt auf dem Linux-Dev-Server oder auf der SSD) als ein phpStorm-Projekt. Und alle sind nun mit dem Problem konfrontiert mit mehr als einem GIT-Repository (Shop-Repo, Template-Repo, mindestens 1 Modul-Repo) in dem Projekt zu arbeiten.
phpStorm fühlt sich zuerst für das “unwichtigste” GIT-Shop-Repo verantwortlich. Dort haben wir ja faktisch nur die composer.json und die composer.lock der Shop Installation drin. vendor und source sind in der .gitignore ausgeklammert.
Durch die Shop-Installation sind unter “vendor” auch die Repositories der Module und des Templates angelegt worden.
Unser Modulentwickler würde gern direkt im vendor-Ordner arbeiten und dann live bei Anpassungen sich das Modul in Shop-Modulverzeichnis synchronisieren lassen und fragt nun, wie er die Syncs (auch mehrerer Module gleichzeitig) sinnvoll und automatisiert in phpStorm eingerichtet bekommt.
Nun hat er die Anpassungen in seinem vendor-Modul drin und will phpStorm dazu bekommen die dort enthaltene composer.json als weiteres GIT-Repo einzubinden. Im Moment sieht das GIT im phpStorm seine Anpassungen nicht, da der vendor-Ordner insgesamt ja durch das Hauptprojekt ignoriert wird.
Und auch hier braucht er am liebsten wieder eine Lösung für mehrere Module (die einander bedingen) gleichzeitig. Im Moment löst er das je Modul mit einer GIT-Kommandozeilen-Orgie, die aber irgendwie sinnlos wirkt, wenn man mit einer großen IDE arbeitet.
Der Theme-Entwickler hat neben dem oben genannten Problem noch ein weiteres Problem. In seinem Vendor hat er npm installiert. Sein Grunt-Build-Prozess ist so eingerichtet, das er erst einmal die fertigen Resourcen im vendor-Modul ablegt, damit sein Theme-Repo vollständig ist. Ein weiterer Grunt-Build-Prozess legt die Resourcen direkt im out-Ordner des Develop-Shops ab.
Aber ihm fehlen automatische Syncs die ihm die Inhalte des de-, en- und tpl- vendor-Ordners in seine Develop-Installation bringen. Hier passiert im Moment auch noch zu viel Handarbeit.
Wie löst Ihr das Problem?
3) Idea-Ordner
PhpStorm legt in die Root seiner Projekte einen .idea-Ordner ab. Dort sind sehr nützliche Informationen für PhpStorm drin (u.a. Pfade, Zugänge usw.). Zu Beginn haben wir die mit in das GIT-Repo rein genommen. Dann aber festgestellt, das die Dateien bei jedem Mitarbeiter sich permanent ändern und wir uns jedes mal mit den Änderungen auseinandersetzen müssen.
Was macht Ihr mit dem Ordner? Checkt Ihr den ein? Nutzt Ihr evtl. nur Teile im Repo?