složky v sandboxu – proč to je tak?
- had12
- Člen | 28
Ahoj,
mám pár šťouravých otázek ohledně struktury složek v sandboxu. Nemůžu
si pomoct, ale už delší dobu mě trápí. :)
- K čemu je dobrý adresář /vendor/dg? Zkratka „dg“ je tu reklamou na Davida, nebo něčím jiným? Když už mám v sandboxu ten adminer, proč to není oddělené, třeba /vendor/adminer? A jak ten adminer můžu volat na ostrém serveru, je pro to nějaká zkratka?
- Proč je samotné Nette umístěné ve složkách /vendor/nette/nette/Nette/? Nestačilo by jenom /vendor/nette?
- Proč je defaultně vytvořená složka /vendor/others, když v ní nic není? Chápu, že se do ní mají nahrávat vlastní přídavné skripty, ale proč je nenahrávat třeba do /vendor/cokoliv?
- Proč došlo k přejmenování složky z /libs na /vendor?
- K čemu je mi dobrá složka /bin a skript, co mi zakládá uživatele v databázi? Pokud má být sandbox univerzální složkou pro tvorbu nového projektu, kterou stačí jenom zkopírovat a upravit připojení k databázi, proč jsou do ní narvané různé blbosti (např. /tests/)? Nestačí jednoduchá stránka homepage?
- Nepoužívám-li composer, k čemu je mi pak dobrý soubor /sandbox/composer.json?
Tak nevím, z jakých důvodů je v sandboxu tohle všechno, zřejmě mi nějak unikají důvody proč. Vždyť trvá čtvrt hodiny, než promažu ty blbosti ze sandboxu a otestuju si to, abych mohl konečně začít psát nový projekt… :-(
- Šaman
- Člen | 2666
Odpověď na první půlku otázek je „protože Composer a jeho balíčky“.
Druhá půlka souvisí s tím, že Sandbox není Skeleton. Sandbox je připravený na rychlé spuštění a pokusy, ale tak, jak je distribuován, není základem nové aplikace. Většina lidí má stejně svůj vlastní Skeleton, často vzniklý promazáním Sandboxu a doplněním vlastních věcí (u mě třeba zkratka pro barDump() a pozměněná adresářová struktura).
Nejsem si jistý, jestli vendor/cokoliv
nebude composer nějak
přepisovat. Vím jen, že vendor/others
ignoruje a ten je
bezpečný. Jinak je vendor
ve správě Composeru.
Nepoužíváš-li composer, jsou ti jeho soubory na nic.
- Tomáš Votruba
- Moderator | 1114
@had12: Místo kuchání bych doporučil se naučit s composerem pracovat, je na to pěkný návod
Defakto tě čeká pár řádků copy-paste instalace a pak můžeš pomocí
composer create-project nette/sandbox myApplication dev-master
a F5 spustit celý fční sandbox.
Hlavně do budoucna tě to ušetří stahování různých doplňků a balíčků pomocí myši. Pokud tedy plánuješ programovat dlouhodobě, teď máš skvělou možnost si to usnadnit. Sám jsem se composeru dlouho vyhýbal z podobných důvodů jaké tu popisuješ. Pak jsem došel na to, že jeho prací je mi tu mou usnadnit. A teď je to paráda :).
- Tomáš Votruba
- Moderator | 1114
Chapu, v klidu a pohode. Napis, s cim budes mit pripadne problem. Rad poradim.
Jinak Bootstrap i Fontawesome jdou s composerem take vyuzit, za pomoci doplnku WebLoader.
- Filip Procházka
- Moderator | 4668
Composer se rozhodně nauč používat a neměň složku do které instaluje
závislosti (tedy vendor/
), to libs/
co tam jednu
chvíli bylo je obskurdita která nemá žádnou přidanou hodnotu.
Ohledně vendor/others
, na to se vykašli a udělej si složku
libs/
, do které si budeš dávat svoje knihovny které nemáš
v composeru a knihovny dalších lidí které oni nemají v composeru. Do
složky vendor/
se zkrátka nesahá.
A díky tomu že použiješ autoloader, který ti vygeneruje composer, tak
nějakou strukturu složek v vendor/
vůbec řešit nemusíš,
proště jenom místo
require_once __DIR__ . '/../libs/Nette/loader.php;
napíšeš
require_once __DIR__ . '/../vendor/autoload.php;
A úplně všechny třídy všech knihoven které jsi nainstaloval přes composer se ti budou na požádání krásně autoloadovat bez jakéhokoliv dalšího nastavování a stresování s robotloaderem.
Proto je taky dobrý zařídit aby RobotLoader nenačítal
vendor/
ale jenom tvoje app/
a libs/
(což jde snadno změnit v tvém bootstrapu).