Tada smo kolege Miloš Jovanov, Nemanja Ognjanović, Nemanja Čedomirović i ja (Aleksandar Varničić) odlučili da razvoj Open Source PHP projekta sprovedemo u delo. Inicijalna ideja je bila da napravimo platformu za naš web sajt phpsrbija.rs ali se taj plan ubrzo promenio jer smo shvatili njegov potencijal za mnogo veću i značajniju primenu.
Početak “Nezavršenog” https://github.com/phpsrbija/unfinished
Iako izgleda kao klasičan CMS namenjen za potrebe ovog web sajta, organizacija koda je takva da se može lako prilagoditi drugačijim potrebama i različitim projektima. Trenutna arhitektura dozvoljava lako dodavanje novih funkcionalnosti ili ekstendovanje postojećih, omogućujući programeru da Unfinished prilagodi različitim projektima kao npr. od manjih news portala, pa do kompleksnih društvenih mreža.
Vizija celog projekta jeste pokretanje PHP Open Source projekta u Srbiji kroz međusobnu podršku PHP zajednice, koja će se ogledati u tome što će programeri imati priliku da doprinose svoj kod u ceo sistem i/ili koriste već postojeće pakete. “Project Unfinished” je samim tim sjajno mesto za učenje dobrih programerskih praksi kako za juniore tako i za seniore.
Želimo da ovim korakom motivišemo i pokrenemo sve na akciju! Zato vas pozivamo da ostavite svoj trag u vidu komentara, pull requesta, otvaranja issua, testiranja ili mišljenja.
Ovo je projekat od svih nas za sve nas.
Sve što vam je potrebno da pokrenete Unfinished je PHP 7.0 i MySQL 5.6. a da bi smo vam dodatno olakšali, podesili smo vagrant bootstrap.sh skriptu koja se pokreće “svemoćnom” komandom vagrant up.
Proces instalacije je maksimalno uprošćen (ja sam ga testirao samo na Linux distribucijama):
cd /var/www/
git clone https://github.com/phpsrbija/unfinished.gitcd unfinished
vagrant up
Otvorite fajl /etc/hosts i na kraju dodajte liniju
192.168.33.3 unfinished.dev
Nakon ovih koraka otvorite u browseru http://unfinished.dev i voila!
Admin url: http://unfinished.dev/admin
Email: [email protected]
Password: testtest
U Vagrant box-u se nalazi sledeće:
Efikasnost se ogleda u tome što se mali paketi uklapaju po principu lego kockica. Glavni cilj je da se aplikacija razbije na manje potpuno nezavisne PSR kompatibilne pakete. Čime se postiže maksimalna efikasnost i jednostavnost. Ako bi dva paketa bila međusobno zavisna neophodno je da se zavisnost reši preko "Dependency Injection” tehnike.
Na ovaj način olakšano je:
Najprikladnije ime projekta bi bilo “Lego” ali je već zauzeto :)
Da li ste do sadа čuli za tu frazu? Unfinished nije namenjen da bude konačan i kompletiran, već da se stalno menja i evoluira u bolji sistem koji će služiti svima nama.
Njegov glavni feature je "PHP community" odnosno svako od nas.
Prepoznali smo potencijal naše regionalne PHP zajednice i zato se nadamo se da će ovaj korak pokrenuti sve zainteresovane entuzijaste.
Sa zadovoljstvom očekujemo prvi Pull Request!
..a vas ubrzo očekuje sledeći članak u kojem ćemo vam približiti dublju strukturu projekta.