Organizace projektů na disku

Skřetík
Člen | 11
+
0
-

Ahoj,

mám dotaz k organizaci, jak to řešíte vy (a případně proč si myslíte že je to dobře). Postupně jsem se propracoval k tomu, že mám na disku něco ve smyslu
C:\Users\User\PhpstormProjects\Sandbox alternativně C:\Users\User\NetbeansProjects\Sandbox`

ten se následně skrze IDE kopíruje do dalšího adresáře kde je root lokálního webserveru (tzn. C:\wamp64\www\Sandbox). Důvod je, abych v projektu samotném neměl zbytečně obsah dat od uživatele (obrázky, soubory), sessions, node_modules, a hlavně u nette temp kde je zkompilovaný kód, což IDE nedělá moc dobře, abych měl local.neon jen v kopii a tak dále.

U pár dalších projektů jsem pak composer spouštěl v projektu samotném (tedy i vendor se zrcadlil), abych měl v gitu i composer.lock. Negativum samozřejmě je množství místa – stačí aby projekt potřeboval google knihovnu, vendor naskočí na 10k+ souborů, a je to nepříjemné. Include vendora do IDE z kopie byl v takovém případě lepší volba, jenže zase člověk řešil separátně že musí zkopírovat composer.lock do projektu, aby případný další programátor měl stejné knihovny ve stejných verzích (nebo poctivě psát všude konkrétní verzi knihovny již do composeru). Další varianta byl pak jen symlink projektu do kopie, což sice šetří místo, ale zase je potřeba řešit obrázky/session atd. což taky není ideální.

Jakou cestu používáte vy, a případně proč?

Děkuji

Mysteria
Člen | 797
+
+1
-

Nějak nechápu to kopírování. Proč nemáš normálně ty projekty v rootu lokálního serveru? V Době před Dockerem jsem to měl taky tak a bez problémů. PhpStormu by taky nějaký vendor nebo cache neměla vadit, samozřejmě předpokládá se že máš SSD, na HDD to asi nebude úplně ono. Případně stačí složky excludnout, pokud je to hodně pomalé.

Toanir
Člen | 57
+
0
-

Jestli tě trápí zbuilděný nebo jiný „nežádaný“ soubory, zkus si vyhledat možnosti jak je ignorovat v daným programu. Pro git slouží soubor .gitignore a třeba PHPStorm umí ignorovat celý složky (Pravý klik > Mark directory as > Excluded)

K rozložení projektů: Můj oblíbený setup je lehce komplikovaný ale vyhovuje mi protože to připomíná produkční prostředí. :P

Baví mě mít projekty v adresářový struktuře odpovídající repozitářový struktuře (třeba na githubu), tj všechno cpu na
D:\Projects\<uživatel nebo společnost>\<název projektu>

V týhle složce mám rozjetý .git, nainstalovaný vendor a node_modules a případně zbuilděný frontendový soubory v <kořen projektu>\www\dist\

Tyhle projekty mi potom spouští apache (wampp) kterej načítá konfigurace jednotlivejch projektů pomocí

# soubor httpd.conf
Include D:/web-dev/sites-enabled/*.conf
Include D:/web-dev/sites-enabled/**/*.conf

Ukázka konfigurace jednotlivých projektů (nepovím, jak jsem k tomu přišel – konfigurace apache je pro mě skoro černá skříňka :P tohle si kopíruju mezi novými projekty)

# soubor D:\web-dev\sites-enabled\personal\paf.conf
<VirtualHost *:80>
	ServerName paf.local
	DocumentRoot "D:\Projects\Thoronir42\paf\www"
	ErrorLog "D:\web-dev\logs\paf.err.log"
	CustomLog "D:\web-dev\logs\paf.custom.log" common
</VirtualHost>

<Directory "D:\Projects\Thoronir42\paf\www">
	Options indexes FollowSymLinks Includes ExecCGI
	AllowOverride All
	Order allow,deny
	Allow from all
	Require all granted
</Directory>

Ve finále přidám lokální DNS záznam pro stránku (díky čemuž jsou lokální projekty dostupný pod pěknými URL, např http://paf.local):

# soubor C:\Windows\System32\drivers\etc\hosts

127.0.0.1           paf.local

Je to docela dost nastavení najednou ale celkově mi to přijde optimální protože jsou potom projekty na sobě nezávislý.
Zároveň projekty nesídlí ve složce webovýho serveru a když chci zkoušet jiný verze PHP, nainstaluju si další instanci WAMPP, kde jen nastavím zahrnutí konfiguráků.

joe
Člen | 313
+
+1
-

Celé mi to přijde jako komplikace. Všechny projekty bych měl v rootu, v tvém případě v složce C:\wamp64\www\

Pokud projekty verzuješ v Gitu, pak stačí správně nastavit .gitignore, vyignorovat soubory a složky, které nechceš – tj. třeba node_modules, vendor, .idea, složku pro NetBeans (sakra, to ještě někdo moje dřív oblíbený IDE ještě dneska používá na PHP, už nevím v jakém je stavu teď). Soubory jako composer.lock a package-lock.json naopak verzuj.

Popravdě nechápu ten důvod kopírování.

Osobně to mám teď už všechno tak, že server na počítači už nainstalovaný ani nemám, ale řeším vše přes Docker (způsobí, že všichni vývojáři rozběhnout projekt ve stejném prostředí) a Traefik, ale mám teď ve správě jen pár projektů, pro velký počet by to mohla být komplikace.

Skřetík
Člen | 11
+
0
-

V NetBeans mám starší projekty, a nechtělo se mi je přesouvat na PHPStorm kvůli nastavování.

Kopírování je tak trochu relikt minulosti, ale je třeba nepříjemné když po switchi branche mi mizí soubory typu local.neon, deployment.ini, deployment.log atd., protože v gitu jsou ignorované, a PHPStorm mi to při každém switchi branche maže. A dávat do gitu přístupy k databázi, serveru, přihlašovací údaje k službám atd. se mi nechce.

Editoval Skřetík (13. 1. 2021 13:49)

Mysteria
Člen | 797
+
+2
-

Co používáš na ovládání GITu? Protože při přepínání větví z terminálu to rozhodně ignorované soubory nemaže.