Hello Laravel 5!Tamás Erdélyi"Erdélyi Tamás (netpeople.hu) előadásában beszélni fog a legfontosabb változásokról és hogy miért is lesz ez jó nekünk. Röviden, címszavakban szó lesz a megváltozott könyvtárstruktúráról, az új validációs lehetőségekről, a fájlgenerátorokról, a fájlrendszer elérését kibővítő, új alap package-ről, a Flysystemről és az ún. Contractokról, amelyek még átláthatóbb, tisztább keretet adnak a rendszernek."
http://www.meetup.com/laravelbp/events/213586752/
Webműves Kelemen tanácsai, avagy mi kell a PHP falába?Open AcademyTanácsok programozóknak, és üzemeltetőknek arról, hogy hogyan ne szúrjunk ki egymással és saját magunkkal.
Laravel for DummiesTamás ErdélyiRövid történelmi áttekintés az idén májusban verziószámot lépett Laravel PHP keretrendszerről, felépítéséről és előnyeiről is. Ezen kívül szóba kerültek még a 2013. november végén érkező 4.1-es frissítés úDzԲá is.
Mi a baj a DrupaloddalthesnufkinA 2012-es Drupal Hetvegen tartott eloadasom bemutatja a legtipikusabb Drupalos hibakat es hogy hogyan lehet kikerulni oket.
Laravel - Veszprémi Technology MeetupBálint SzekeresSzekeres Bálint - Laravel PHP Framework - Fejlesszünk mint a profik
Minek framework? Miért Laravel? Ha a Hello World PHP-ban már a kisujjadban van, és tudod, hogy mit jelent az n:m adatbázis kapcsolat, akkor elmesélem neked, hogy legyél Laravel sensei!
Hogy kerül a csizma az asztalra?Open AcademyPontosabban a HTML. Az ötös. És hogy kerül a JavaScript a szerverre? Mi közük ezeknek egymáshoz? Mibe ásd bele magad, ha szeretnél felkészülni a jövőre?
Szerver oldali fejlesztés korszerű módszerekkel C# nyelvenKrisztián Gyula TóthA Pannon Egyetemen fejlesztett felhő alapú workflow rendszer (ORENBI) back-end oldali fejlesztése alapján a Műszaki Informatikai karon tartott tanszéki szeminárum során előadott prezentációnk. A prezentáció témája az alkalmazott technológiák és architektúrális valamint TDD módszereink bemutatása és tapasztalataink átadása.
Webműves Kelemen tanácsai, avagy mi kell a PHP falába?Open AcademyTanácsok programozóknak, és üzemeltetőknek arról, hogy hogyan ne szúrjunk ki egymással és saját magunkkal.
Laravel for DummiesTamás ErdélyiRövid történelmi áttekintés az idén májusban verziószámot lépett Laravel PHP keretrendszerről, felépítéséről és előnyeiről is. Ezen kívül szóba kerültek még a 2013. november végén érkező 4.1-es frissítés úDzԲá is.
Mi a baj a DrupaloddalthesnufkinA 2012-es Drupal Hetvegen tartott eloadasom bemutatja a legtipikusabb Drupalos hibakat es hogy hogyan lehet kikerulni oket.
Laravel - Veszprémi Technology MeetupBálint SzekeresSzekeres Bálint - Laravel PHP Framework - Fejlesszünk mint a profik
Minek framework? Miért Laravel? Ha a Hello World PHP-ban már a kisujjadban van, és tudod, hogy mit jelent az n:m adatbázis kapcsolat, akkor elmesélem neked, hogy legyél Laravel sensei!
Hogy kerül a csizma az asztalra?Open AcademyPontosabban a HTML. Az ötös. És hogy kerül a JavaScript a szerverre? Mi közük ezeknek egymáshoz? Mibe ásd bele magad, ha szeretnél felkészülni a jövőre?
Szerver oldali fejlesztés korszerű módszerekkel C# nyelvenKrisztián Gyula TóthA Pannon Egyetemen fejlesztett felhő alapú workflow rendszer (ORENBI) back-end oldali fejlesztése alapján a Műszaki Informatikai karon tartott tanszéki szeminárum során előadott prezentációnk. A prezentáció témája az alkalmazott technológiák és architektúrális valamint TDD módszereink bemutatása és tapasztalataink átadása.
18. WTF? Van az 5.4 kiadás 2 RM-je (Release Manager): Stas Malyshev
19. David Soria Parra Van egy Release Process RFC: https://wiki.php.net/rfc/releaseprocess Illetve egy Voting RFC: https://wiki.php.net/rfc/voting Elméletileg a mindkét RFC el lett fogadva...
20. RM Koordinálja egy adott kiadás körüli teendőket: Kezdeményezi, illetve moderálja az fejlesztések körüli megbeszéléseket, illetve a szavazást.
23. Gondoskodik róla, hogy a releaseprocess RFC-ben foglaltak betartásra kerülnek. Az RM-ek jóváhagyása nélkül nem kerülhet az adott ágban új verzió kiadásra.
24. Hogyan alakul ki egy új verzió? Ami az előző verzióba valamiért nem fért bele.
35. Miért nincs ez mindig így? A releaseprocess RFC még nincs 1 éves.
36. Nagyon sok BC break nem szándékosan történik és néha túl későn derül ki: úgy marad.
37. Néha ugyan nyilvánvaló a változás, de mindenki úgy gondolja, hogy senkit nem fog érinteni.
38. Néha egyszerűen nincs más megoldás, mert fontos egy adott javítás (biztonsági rés, etc.).
39. Hogyan lehet ezen segíteni? Növelni kell a teszt esetek coverage-ét, illetve komolyan kell venni, ha egy teszteset elkezd elhasalni. (Ez utóbbi el volt hanyagolva.)
40. Be kell vonni több résztvevőt, alkalmazást az RC verziók tesztelésébe, hogy még a stable előtt legyen lehetőség kiszúrni és javítani a hibákat.
43. Closure rebind 5.3-ban megállapodás hiányában nem lett megvalósítva az objektumok támogatása a névtelen függvényekhez: https://wiki.php.net/rfc/closures/removal-of-this 5.4-ben immár erre is lehetőségünk lesz.
44. Closure rebind Mostantól a Closure-ökhöz tartozhat egy scope: A Closure úgy éri el a bound objektumot mintha a Closure a scope-ban megadott osztályban lenne egy metódus. (visibility miatt fontos pl.) Mostantól a Closure-ökhöz tartozhat egy hozzárendelt(bound) objektum. Ez lesz a $this az adott Closure számára. Mostantól a Closure-ök definiálhatóak static-ként. Ebben az esetben nem érhető el a $this.
45. Closure rebind Scope: Ha egy osztályon belül lett a Closure definiálva, akkor az adott osztály lesz a scope automatikusan.
46. Ha rebindoljuk a Closure::bind() vagy $closure->bindTo() függvényhivásokkal, akkor az ott megadott objektum scopeját kapja.
56. Closure rebind <?php class MyClass { private $foo = 100 ; public function getClosure () { $baz = 1 ; return function ( $bar ) use ( $baz ) { return $this ->foo+ $bar + $baz ; }; } } $myClass = new MyClass; $closure = $myClass ->getClosure(); echo $closure ( 10 ); // 111
57. Traits Van már dokumentáció \o/ http://php.net/traits Viselkedések gyüjteménye, többszörös öröklést nem támogató nyelvekben használható egyik konstrukció a horizontális kódújrahasznosításra
66. Ha szeretnénk használni több traitet egyszerre, amelyek közül kettő ugyanazt a metódust definiálja, akkor az insteadof kulcsszóval feloldhatjuk a konfliktusokat.
67. Ha egy metódus láthatóságát szeretnénk megváltoztatni, vagy egy másik néven is elérni, azt az as kulcsszóval tehetjük meg.
68. Traits <?php trait A { public function smallTalk() { echo 'a' ; } public function bigTalk() { echo 'A' ; } } trait B { public function smallTalk() { echo 'b' ; } public function bigTalk() { echo 'B' ; } } class Talker { use A, B { B::smallTalk insteadof A; A::bigTalk insteadof B; } }
69. Traits <?php trait HelloWorld { public function sayHello() { echo 'Hello World!' ; } } // Change visibility of sayHello class MyClass1 { use HelloWorld { sayHello as protected ; } } // Alias method with changed visibility // sayHello visibility not changed class MyClass2 { use HelloWorld { sayHello as private myPrivateHello; } }
70. Traits Egy trait-en belül is használhatjuk a use kulcsszót, ami azt jelenti, hogy egymásra épülő viselkedéseket definiálhatunk.
71. Lehetőségünk van absztrakt metódusok definiálására is, ezáltal jelezve a traitet felhasználó osztálynak, ha valamit neki szükséges definiálnia.
72. Egy trait hivatkozhat statikus tagváltozókra, de nem definiálhatja őket, viszont statikus metódust definiálhat.
73. Traits <?php trait Hello { public function sayHelloWorld() { echo 'Hello' . $this ->getWorld(); } abstract public function getWorld(); } class MyHelloWorld { private $world ; use Hello; public function getWorld() { return $this ->world; } public function setWorld( $val ) { $this ->world = $val ; } }
74. Traits <?php trait Counter { public function inc() { static $c = 0 ; $c = $c + 1 ; echo " $c \n " ; } } class C1 { use Counter; } class C2 { use Counter; } $o = new C1(); $o ->inc(); // echo 1 $p = new C2(); $p ->inc(); // echo 1
75. Traits <?php trait StaticExample { public static function doSomething() { return 'Doing something' ; } } class Example { use StaticExample; } Example::doSomething();
76. Beépített webszerver A php bináris mostantól használható egy minimális tudású webszerverként.
79. A cli_server.color php ini beállítást 1-re állítva a szerver indítása után szinesben látjuk az egyes lekéréseket jelző logokat, ezáltal könnyebben követhetőek a sikeres/sikertelen lekérések.
81. Array dereferencing Lehetővé teszi, hogy egy függvény által visszaadott tömbből segédváltozó nélkül hivatkozni lehessen az egyik elemre. some_func()[0]; Sajnos a method chaining illetve a példányosításból egyből metódus hivás még nem került be ebbe a verzióba. :/ https://wiki.php.net/rfc/fcallfcall
84. Felmerült a rövid object deklaráció, valamint a natív json szintakszis is, de egyelőre nem került elfogadásra: https://wiki.php.net/rfc/objectarrayliterals
85. callable 𱹱ére került a callable typehint, ami ugyanazt tekinti meghívhatónak, mint amit az is_callable(). function call(callable $callback){$callback();} Ehhez kapcsolódóan, mostantól lehetőség van egy callable formátumú tömböt egyszerűen meghívni: $foo = array('Closure', 'bind');$foo();
86. T_PAAMAYIM_NEKUDOTAYIM Mostantól hiba esetén nem csak a token konstansát, de a token nevét is megkapjuk a hibaüzenetben: Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM
89. session.upload.progress Az uploadprogress es az apc extensionök után végre eljutottunk oda, hogy core modulok használatával is követhető 1 fájlfeltöltés státusza! http://php.net/manual/en/session.upload-progress.php
93. session.upload.progress $_SESSION [ "upload_progress_123" ] = array ( "start_time" => 1234567890 , // The request time "content_length" => 57343257 , // POST content length "bytes_processed" => 453489 , // Amount of bytes received and processed "done" => false, // true when the POST handler has finished, successfully or not "files" => array ( 0 => array ( "field_name" => "file1" , // Name of the <input/> field // The following 3 elements equals those in $_FILES "name" => "foo.avi" , "tmp_name" => "/tmp/phpxxxxxx" , "error" => 0 , "done" => true, // True when the POST handler has finished handling this file "start_time" => 1234567890 , // When this file has started to be processed "bytes_processed" => 57343250 , // Amount of bytes received and processed for this file ), );
94. mysql Mostantól a mysqlnd lesz az alapértelmezett mysql library, de továbbra is van lehetőség a libmysql-t használni.
95. libmysqlből már csak 4.1es illetve magasabb verzió támogatott, elképzelhető hogy a végleges verzióban ez még feljebb kúszik.
96. Felmerült, hogy a mysql extensiont dokumentáció szinten ellenjavalttá kellene tenni, a mysqli kiegészítés nagyon egyszerű migrációt tesz lehetővé, és folyamatosan fejlesztés alatt áll, szemben a mysql extensionnel.