co z tym php?
TRANSCRIPT
PHP2015.02.03 / ADRIAN PIĘTKA
2015.02.03 / ADRIAN PIĘTKAPHP
Najkrótszy żart informatyczny?
2015.02.03 / ADRIAN PIĘTKAPHP
Programista PHP
2015.02.03 / ADRIAN PIĘTKAPHP
Programista JS
2015.02.03 / ADRIAN PIĘTKAPHP
2015.02.03 / ADRIAN PIĘTKAPHP
Co wpływa na popularność?► Niski koszt infrastruktury► Hosting► Syndrom słowa dużo
literatury, społeczności, wydarzeń, bibliotek, pracy.
2015.02.03 / ADRIAN PIĘTKAPHP
Co wpływa na popularność?► Niski próg wejścia► PHP nic nie narzuca
standardów nazewnictwa kodowania
architektury aplikacji
2015.02.03 / ADRIAN PIĘTKAPHP
Prawie nic nie narzuca…
2015.02.03 / ADRIAN PIĘTKAPHP
API► zgłaszanie błędów ► różna kolejność parametrów w funkcjach► niekonsekwencja w nazewnictwie► hacki m.in:
rzutowanie case sensitive zmiennych, no case sensitive funkcji niezainicjowane zmienne
2015.02.03 / ADRIAN PIĘTKAPHP
PHP 5.6► Namespaces► Traits► Interfaces► Abstract & final class► Type Hinting► Lambda, Closure
► Reflection API► OPCache
► Off = 41 r/s► On = 270/s (CakePHP)
► Wbudowany serwer
2015.02.03 / ADRIAN PIĘTKAPHP
PHP 7► Listopad 2015► Refaktoryzacja Zend Engine► Return Type Declarations► Uniform Variable Syntax► Nowa implementacja JSON► Ułatwienia w składni► Praca nad problemami z rzutowaniem
2015.02.03 / ADRIAN PIĘTKAPHP
Standarydy & dobre praktyki► PSR-0 – Autoloading Standard
<Vendor Name>(\<Subnamespace>)*\<Class name>
► PSR-1 – Basic Coding Standard StudlyCaps, camelCase, UTF-8
► PSR-2 – Coding Style Guide Wcięcia, spacje, nowe linie, długość linii
► PSR-3 – Logger Interface► PSR-4 -Autoloader
2015.02.03 / ADRIAN PIĘTKAPHP
Composer
► Dependency Manager► Packagist, VCS, PEAR
$: cat composer.json
{ "require": { "monolog/monolog": "1.2.*" }}
$: composer install$: composer update
2015.02.03 / ADRIAN PIĘTKAPHP
Symfony2
► Initial release – październik 2005► Inspiracja: Ruby on Rails, Django, Spring► OOP, MVC► Dependency Injection► Event Driven Programming► Scaffolding► Security
2015.02.03 / ADRIAN PIĘTKAPHP
Phalcon
► Framework dla PHP napisany C► Działa jako moduł PHP► Udostępnia klasy dostępne z poziomu PHP► Wysoka wydajność► Niedostępny na większości hostingów
2015.02.03 / ADRIAN PIĘTKAPHP
Doctrine
► ORM - Hibernate dla PHP► DBAL► EntityManager► Query Builder
2015.02.03 / ADRIAN PIĘTKAPHP
Twig
► System szablonów
2015.02.03 / ADRIAN PIĘTKAPHP
PHPUnit► Framework &Test Runner► Data Providers► Mock Objects► Testowanie wyjątków► Generator raportów► Code Coverage► Wsparcie dla Selenium
2015.02.03 / ADRIAN PIĘTKAPHP
HHVM
► virtual machine dla aplikacji PHP► just-in-time (JIT) compilation► zamiast bezpośredniej interpretacji:
PHP > Kod pośredni Optymalizacja Uruchomienie
► Tylko PHP 5.3
2015.02.03 / ADRIAN PIĘTKAPHP
Phing
► Project building► Bazuje na Apache Ant► Wsparcie dla
PHPowych narzędzi SCA Konfiguracji projektu Testowania Publikacji
Phint + JenkinsAnt + Jenkins
2015.02.03 / ADRIAN PIĘTKAPHP
Podsumowanie
► Zj***ć można wszystko – niezależnie od języka► PHP – to tylko narzędzie w rękach rzemieślnika► Spagetti code? Wordpress► Dobre praktyki? Symfony2► Kiedy użyć PHP? To zależy.► badprogramming.com/search/php
2015.02.03 / ADRIAN PIĘTKAPHP