@DubecZ nuuu. Sper că nu cereți.
1) începe cu pornire de clasă. De ce nu-l utilizați? Există standarde, PSR-0 / PSR-4, care descrie modul în care ar trebui să funcționeze, etc. Există autoloaders gata, puteți utiliza compozitorul, este posibil ca PSR-0 pentru a face câteva linii și niciodată nu suferă acest gunoi cu require_once / nevoie.
2) aveți o clasă Core cumva moștenește de la Setări, că indiferent cât de logică. Ar fi logic să se transfere la clasa Setări Core designer. Da, chiar dacă lasă lucrurile așa cum sunt, de ce în fișierul care conține Core-clasa nu are o legătură cu setarea de clasă de fișiere? este acolo, deoarece este mai necesar. Și din nou ne întoarcem la clasele respective de pornire, ar fi mai frumos cu ea deja
3) pentru a face o conexiune la baza de date, în ideea constructorului rău. De fapt, a face altceva decât initializare date în constructorul o idee rea. Cel mai simplu caz, am creat o instanță, acesta este conectat la baza, dar nu am nevoie să lingușirea în baza și în cele din urmă, avem o mulțime de timp în baza de date inutile conexiune cielo. conexiune leneș este mult mai bine în această privință,
4) Există un astfel de lucru ca principiul responsabilității unice. Potrivit lui, clasa ar trebui să fie capabil să facă un singur lucru. Dacă aveți una și aceeași clasă este responsabil pentru accesul bazei de date și exploatare forestieră, are ceva mers prost. Conform acestui principiu, ar trebui să avem doar un singur motiv pentru a schimba ceva în punerea în aplicare a clasei. Și aici avem două dintre ele - pentru a modifica activitatea cu baza de date și prelucrarea buștenilor
Mult mai bine în acest mod de a face o clasă separată pentru lucrul cu BD și o clasă pentru exploatare forestieră și a le transfera la constructorul clasei
5) De ce rauting, de asemenea, să nu stea într-o componentă? Ar fi mai convenabil. Și chiar mai bine - să profite de componente pre-construite, deși sper că codul pe care îl scrie doar pentru scopuri educaționale și Prodakshen el nu devine. Dacă este așa, atunci bicicleta este posibil și necesar să se scrie, dar ar trebui să facă totul ca o componentă separată, care este un controler de tragere resolvit.
6) Dacă ați completat toate elementele de mai sus, s-ar putea crede că într-un fel nu este convenabil de a lucra cu un buchet de diferite clase. Și apoi vei fi drept, prin urmare, ai veni cu un astfel de lucru ca recipiente de dependență, localizatori de serviciu, etc. Aceste lucruri apar din nou de la principiul responsabilității unice și Dependență inversiune. Ar trebui să aibă o componentă care este capabil de a colecta celelalte componente, și numai că el va face. l $ Containere> get ( „db“) cereți și va crea fie clasa DB instanță sau sunt create emise anterior. Mai mult decât atât, înregistrarea tuturor acestor lucruri pot fi scoase într-un fișier, și de acolo pentru a face ceva de genul:
Pfiu. Dacă credeți că toate acestea în plus OHP, da. Poate părea. Dar ar trebui să ne obișnuim să ne facem totul doar pentru ca s-ar apoi cu creșterea complexității proiectelor nu scrie govnokod.