Your SlideShare is downloading. ×
0
Seni projektai, nauji įrankiai                                 Seni projektai, nauji įrankiai                             ...
Seni projektai, nauji įrankiai   ĮžangaKas aš toks?                 Povilas Balzaravičius                 @Pawka          ...
Seni projektai, nauji įrankiai   Įžanga      Seni projektai        Seni projektai
Seni projektai, nauji įrankiai   Įžanga      Seni projektaiKas jie tokie?                 PHP 4.x/5.x.                 Kod...
Seni projektai, nauji įrankiai   Įžanga      Seni projektaiKylančios problemos                 Didžiulės sąnaudos tvarking...
Seni projektai, nauji įrankiai   Projektų gaivinimas        Pradedam!
Seni projektai, nauji įrankiai   Projektų gaivinimas      Kodo stilius        Stilius        Naujas projektas - naujas pro...
Seni projektai, nauji įrankiai   Projektų gaivinimas      Kodo stiliusStandartas        PSR
Seni projektai, nauji įrankiai   Projektų gaivinimas      Kodo stiliusPSR Standartas        PHP Specification Request - pro...
Seni projektai, nauji įrankiai   Projektų gaivinimas      Kodo stiliusPSR Standartas        PHP Specification Request - pro...
Seni projektai, nauji įrankiai   Projektų gaivinimas      Kodo stiliusPSR Standartas        PHP Specification Request - pro...
Seni projektai, nauji įrankiai   Projektų gaivinimas      Kodo stiliusPSR Standartas        PHP Specification Request - pro...
Seni projektai, nauji įrankiai   Projektų gaivinimas      Kodo stiliusPSR Standartas        PHP Specification Request - pro...
Seni projektai, nauji įrankiai   Projektų gaivinimas      Kodo stiliusSprendimas        php-cs-fixer
Seni projektai, nauji įrankiai   Projektų gaivinimas      Kodo stiliusPHP Coding Standards Fixer        Įrankis skirtas ko...
Seni projektai, nauji įrankiai   Projektų gaivinimas      Kodo stiliusPHP Coding Standards Fixer - naudojimas            1...
Seni projektai, nauji įrankiai   Projektų gaivinimas      Kodo stiliusPHP Coding Standards Fixer - naudojimas            1...
Seni projektai, nauji įrankiai   Projektų gaivinimas      Išorinės bibliotekos        Išorinės bibliotekos        Naudojam...
Seni projektai, nauji įrankiai   Projektų gaivinimas      Išorinės bibliotekosProblemos                 Nepatogu įtrauktį ...
Seni projektai, nauji įrankiai   Projektų gaivinimas      Išorinės bibliotekosSprendimas        Composer
Seni projektai, nauji įrankiai   Projektų gaivinimas      Išorinės bibliotekosComposer                 Autorius: Jordi Bog...
Seni projektai, nauji įrankiai   Projektų gaivinimas      Išorinės bibliotekosComposer - naudojimas            1    curl -...
Seni projektai, nauji įrankiai   Projektų gaivinimas      Išorinės bibliotekosComposer - paketų instaliavimas            1...
Seni projektai, nauji įrankiai   Projektų gaivinimas      Išorinės bibliotekos
Seni projektai, nauji įrankiai   Projektų gaivinimas      Išorinės bibliotekosComposer - naudojimas        composer.json p...
Seni projektai, nauji įrankiai   Projektų gaivinimas      Išorinės bibliotekosComposer - naudojimas        composer.json p...
Seni projektai, nauji įrankiai   Projektų gaivinimas      Išorinės bibliotekos        Iš ko rinktis?
Seni projektai, nauji įrankiai   Projektų gaivinimas      Išorinės bibliotekosSymfony Components        symfony.com/compon...
Seni projektai, nauji įrankiai   Projektų gaivinimas      Išorinės bibliotekosZend Framework 2        48 atskiri komponent...
Seni projektai, nauji įrankiai   Mano pasirinkimas        Kaip dirbu aš?
Seni projektai, nauji įrankiai   Mano pasirinkimasDarbo planas            1    Stiliaus sutvarkymas.            2    Compo...
Seni projektai, nauji įrankiai   Mano pasirinkimas      Dependency Injection Container        Dependency Injection        ...
Seni projektai, nauji įrankiai   Mano pasirinkimas      Dependency Injection ContainerKam reikalingas?                 Obj...
Seni projektai, nauji įrankiai   Mano pasirinkimas      Dependency Injection ContainerPimple        A simple Dependency In...
Seni projektai, nauji įrankiai   Mano pasirinkimas      Routing        Routing
Seni projektai, nauji įrankiai   Mano pasirinkimas      RoutingKam reikalingas?                 Iškviesti reikiamą Control...
Seni projektai, nauji įrankiai   Mano pasirinkimas      RoutingSymfony Routing Component                 symfony.com/doc/c...
Seni projektai, nauji įrankiai   Mano pasirinkimas      Teisingas kodas        Teisingas kodas
Seni projektai, nauji įrankiai   Mano pasirinkimas      Teisingas kodasService-oriented architecture        Symfony Glossa...
Seni projektai, nauji įrankiai   Mano pasirinkimas      Teisingas kodasSOA Robotikos taisyklės                 Modeliai - ...
Seni projektai, nauji įrankiai   PabaigaApibendrinimas                 Naują kodą rašykite tvarkingai.                 Sen...
Seni projektai, nauji įrankiai   Pabaiga                                 Ačiū
Upcoming SlideShare
Loading in...5
×

Seni projektai, nauji įrankiai

1,023

Published on

Kaip seniems PHP projektams pritaikyti naujus įrankius ir komponentus.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,023
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
4
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Seni projektai, nauji įrankiai"

  1. 1. Seni projektai, nauji įrankiai Seni projektai, nauji įrankiai VilniusPHP Susitikimas #1 Povilas Balzaravičius 2012 m. gruodžio 6 d.
  2. 2. Seni projektai, nauji įrankiai ĮžangaKas aš toks? Povilas Balzaravičius @Pawka github.com/pawka linkedin.com/in/pawka pawka.linija.net
  3. 3. Seni projektai, nauji įrankiai Įžanga Seni projektai Seni projektai
  4. 4. Seni projektai, nauji įrankiai Įžanga Seni projektaiKas jie tokie? PHP 4.x/5.x. Kodas >= 4 metų senumo. Niekur nematytas kodo stilius(-ai). Nenaudojamas žmonijai žinomas karkasas. include, require ir draugai.
  5. 5. Seni projektai, nauji įrankiai Įžanga Seni projektaiKylančios problemos Didžiulės sąnaudos tvarkingai perrašyti kodą. Naujo funkcionalumo pridėjimas reikalauja daug laiko. Kažką pajudinus viskas griūna. Šlykštoka dirbti…
  6. 6. Seni projektai, nauji įrankiai Projektų gaivinimas Pradedam!
  7. 7. Seni projektai, nauji įrankiai Projektų gaivinimas Kodo stilius Stilius Naujas projektas - naujas programavimo stilius.
  8. 8. Seni projektai, nauji įrankiai Projektų gaivinimas Kodo stiliusStandartas PSR
  9. 9. Seni projektai, nauji įrankiai Projektų gaivinimas Kodo stiliusPSR Standartas PHP Specification Request - programavimo stiliaus rekomendacija.
  10. 10. Seni projektai, nauji įrankiai Projektų gaivinimas Kodo stiliusPSR Standartas PHP Specification Request - programavimo stiliaus rekomendacija. Sudaro trys dokumentai: PSR-0 Autoload standartas.
  11. 11. Seni projektai, nauji įrankiai Projektų gaivinimas Kodo stiliusPSR Standartas PHP Specification Request - programavimo stiliaus rekomendacija. Sudaro trys dokumentai: PSR-0 Autoload standartas. PSR-1 “Basic Coding Standard” - Koduotė, PHP tagai, konstantos, klasių ir metodų pavadinimai, …
  12. 12. Seni projektai, nauji įrankiai Projektų gaivinimas Kodo stiliusPSR Standartas PHP Specification Request - programavimo stiliaus rekomendacija. Sudaro trys dokumentai: PSR-0 Autoload standartas. PSR-1 “Basic Coding Standard” - Koduotė, PHP tagai, konstantos, klasių ir metodų pavadinimai, … PSR-2 “Coding Style Guide” - Tarpai, skliausteliai ir kableliai :-)
  13. 13. Seni projektai, nauji įrankiai Projektų gaivinimas Kodo stiliusPSR Standartas PHP Specification Request - programavimo stiliaus rekomendacija. Sudaro trys dokumentai: PSR-0 Autoload standartas. PSR-1 “Basic Coding Standard” - Koduotė, PHP tagai, konstantos, klasių ir metodų pavadinimai, … PSR-2 “Coding Style Guide” - Tarpai, skliausteliai ir kableliai :-) Standarto aprašymas: github.com/php-fig/fig-standards/
  14. 14. Seni projektai, nauji įrankiai Projektų gaivinimas Kodo stiliusSprendimas php-cs-fixer
  15. 15. Seni projektai, nauji įrankiai Projektų gaivinimas Kodo stiliusPHP Coding Standards Fixer Įrankis skirtas kodo stiliaus tvarkymui pagal PSR-1 ir PSR-2 standartus. Autorius: Fabien Potencier http://cs.sensiolabs.org/ Galimybė tvarkyti tik tam tikras sritis (identacija, skliaustų išdėstymas, …) …ir/arba naudoti paruoštas konfigūracijas (sf20, sf21, magento, default).
  16. 16. Seni projektai, nauji įrankiai Projektų gaivinimas Kodo stiliusPHP Coding Standards Fixer - naudojimas 1 sudo wget http://cs.sensiolabs.org/get/php-cs-fixer.phar -O /usr/local/bin/php-cs-fixer 2 sudo chmod a+x /usr/local/bin/php-cs-fixer 3 php php-cs-fixer.phar fix /path/to/dir 4 Džiaugiamės tvarkingu kodu :-)
  17. 17. Seni projektai, nauji įrankiai Projektų gaivinimas Kodo stiliusPHP Coding Standards Fixer - naudojimas 1 sudo wget http://cs.sensiolabs.org/get/php-cs-fixer.phar -O /usr/local/bin/php-cs-fixer 2 sudo chmod a+x /usr/local/bin/php-cs-fixer 3 php php-cs-fixer.phar fix /path/to/dir 4 Džiaugiamės tvarkingu kodu :-) (dažniausiai)
  18. 18. Seni projektai, nauji įrankiai Projektų gaivinimas Išorinės bibliotekos Išorinės bibliotekos Naudojam tai, kas jau sukurta.
  19. 19. Seni projektai, nauji įrankiai Projektų gaivinimas Išorinės bibliotekosProblemos Nepatogu įtrauktį į kodą. Gali priklausyti nuo kitų bibliotekų. Saugomos kartu su projekto kodu. Nepatogu atnaujinti.
  20. 20. Seni projektai, nauji įrankiai Projektų gaivinimas Išorinės bibliotekosSprendimas Composer
  21. 21. Seni projektai, nauji įrankiai Projektų gaivinimas Išorinės bibliotekosComposer Autorius: Jordi Boggiano http://getcomposer.org/ Suranda, instaliuoja, atnaujina ir autoloadina paketus.
  22. 22. Seni projektai, nauji įrankiai Projektų gaivinimas Išorinės bibliotekosComposer - naudojimas 1 curl -s https://getcomposer.org/installer | php 2 Parsiunčiamas composer.phar 3 php composer.phar <komanda>
  23. 23. Seni projektai, nauji įrankiai Projektų gaivinimas Išorinės bibliotekosComposer - paketų instaliavimas 1 Susirandam paketą ir jo versiją: php composer.phar search kažkas arba packagist.org. 2 Pvz. doctrine/dbal 2.3.0. 3 Įtraukiam paketą į composer.json. 4 php composer.phar install (arba update). 5 Parsiųs paketus ir sugeneruos Autoload failus.
  24. 24. Seni projektai, nauji įrankiai Projektų gaivinimas Išorinės bibliotekos
  25. 25. Seni projektai, nauji įrankiai Projektų gaivinimas Išorinės bibliotekosComposer - naudojimas composer.json pavyzdys
  26. 26. Seni projektai, nauji įrankiai Projektų gaivinimas Išorinės bibliotekosComposer - naudojimas composer.json pavyzdys O tada…
  27. 27. Seni projektai, nauji įrankiai Projektų gaivinimas Išorinės bibliotekos Iš ko rinktis?
  28. 28. Seni projektai, nauji įrankiai Projektų gaivinimas Išorinės bibliotekosSymfony Components symfony.com/components BrowserKit HttpKernel ClassLoader Locale Config Process Console Routing CssSelector Security DependencyInjection Serializer DomCrawler Templating EventDispatcher Translation Finder Validator Form Yaml HttpFoundation
  29. 29. Seni projektai, nauji įrankiai Projektų gaivinimas Išorinės bibliotekosZend Framework 2 48 atskiri komponentai framework.zend.com
  30. 30. Seni projektai, nauji įrankiai Mano pasirinkimas Kaip dirbu aš?
  31. 31. Seni projektai, nauji įrankiai Mano pasirinkimasDarbo planas 1 Stiliaus sutvarkymas. 2 Composer paruošimas. 3 DBAL (vienareikšmiškai doctrine/dbal). 4 Dependency Injection Container. 5 Routing’o įdiegimas. 6 Naujo kodo rašymas teisinga tvarka.
  32. 32. Seni projektai, nauji įrankiai Mano pasirinkimas Dependency Injection Container Dependency Injection Container
  33. 33. Seni projektai, nauji įrankiai Mano pasirinkimas Dependency Injection ContainerKam reikalingas? Objektų kūrimo taisyklės saugomos vienoje vietoje. Lazy Loading - objektai kuriami tik tada, kai jų prireikia. Fabien Potencier … when you need to manage a lot of different objects with a lot of dependencies, a Dependency Injection Container can be really helpful (think of a framework for instance). Pasiskaitymui: “What is Dependency Injection” by @fabpot.
  34. 34. Seni projektai, nauji įrankiai Mano pasirinkimas Dependency Injection ContainerPimple A simple Dependency Injection Container for PHP 5.3 Autorius: Fabien Potencier pimple.sensiolabs.org Paprastas Greitas Integravimas - kelios eilutės. Primityvus (pvz. lyginant su Symfony DependencyInjection)
  35. 35. Seni projektai, nauji įrankiai Mano pasirinkimas Routing Routing
  36. 36. Seni projektai, nauji įrankiai Mano pasirinkimas RoutingKam reikalingas? Iškviesti reikiamą Controller’io Actions’ą pagal URL. Iškviečiant priskirti kintamuosius iš URL. URL generatorius pagal route’o pavadinimą. Dažnai senesni projektai neturi :-(
  37. 37. Seni projektai, nauji įrankiai Mano pasirinkimas RoutingSymfony Routing Component symfony.com/doc/current/components/routing/ Integravimas - kelios eilutės. Sprendžia visas anksčiau aprašytas problemas.
  38. 38. Seni projektai, nauji įrankiai Mano pasirinkimas Teisingas kodas Teisingas kodas
  39. 39. Seni projektai, nauji įrankiai Mano pasirinkimas Teisingas kodasService-oriented architecture Symfony Glossary A Service is a generic term for any PHP object that performs a specific task. A service is usually used "globally", such as a database connection object or an object that delivers email messages. In Symfony2, services are often configured and retrieved from the service container. An application that has many decoupled services is said to follow a service-oriented architecture.
  40. 40. Seni projektai, nauji įrankiai Mano pasirinkimas Teisingas kodasSOA Robotikos taisyklės Modeliai - žemiausias lygmuo, vieni apie kitus nežino. Servisas žino apie jam priklausančius modelius. Servisas gali žinoti apie kitus servisus. Kontroleriai nežino nieko apie modelius ir naudoja TIK servisus.
  41. 41. Seni projektai, nauji įrankiai PabaigaApibendrinimas Naują kodą rašykite tvarkingai. Seną kodą perrašinėkite nedidelėmis dalimis ir tik tada, kai to reikia. Naudokite jau sukurtus įrankius. Sugaišit laiko sutvarkymui, bet laimėsit kurdami naujas funkcijas.
  42. 42. Seni projektai, nauji įrankiai Pabaiga Ačiū
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×