Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Frameworks da Nova Era PHP

Da8e5dfb037990a43802ef13545bf94b?s=47 Dan Jesus
November 29, 2013

Frameworks da Nova Era PHP

Palestra aprensentada na PHPConference

Da8e5dfb037990a43802ef13545bf94b?s=128

Dan Jesus

November 29, 2013
Tweet

Transcript

  1. FRAMEWORKS DA NOVA ERA PHP DAN JESUS

  2. 40#3&.*. $danjesus = [ “developer” => [“php”, js”, “ruby”, “java”,

    “objective-c”], “where” => [“LQDI Digital”, “Co-founder Solhys Tecnologia”], “blog” => [“danjesus.github.io”] ]; ! return $danjesus;
  3. '6&-1)1 'VFM1)1JTBTJNQMF qFYJCMF DPNNVOJUZESJWFO 1)1 GSBNFXPSL CBTFEPOUIFCFTUJEFBTPG PUIFSGSBNFXPSLT XJUIBGSFTITUBSU

  4. None
  5. '6&-1)1 .0%6-"3 #005453"14*.1-&4 &95&/4°7&-

  6. ).7$

  7. */45"-"ª§0

  8. DVSMHFUGVFMQIQDPNPJMcTI via curl

  9. HJUDMPOFHJUHJUIVCDPNGVFMGVFMHJU via git

  10. 0*-$0.."/%-*/&

  11. PJMDSFBUF DFMM DPOTPMF HFOFSBUF QBDLBHF SFpOF IFMQ TFSWFS UFTU 

  12. PJMDSFBUF\BQQOBNF^ criando o app usando oil *OTUBMBBT EFQFOEÊODJBT DPNDPNQPTFS $MPOBP

    SFQPTJUÓSJPHJU &YFDVUBPT TVCNÓEVMPT
  13. criando um controller PJMHFOFSBUF DPOUSPMMFS\BDUJPOT^ oil generate controller Posts index

    view add criando um model PJMHFOFSBUF NPEFM oil generate controller Post index view add
  14. scaffolding criando automaticamente PJMHFOFSBUF TDB⒎PME oil generate scaffold Post title:varchar[200]

    content:text migrations PJMHFOFSBUFNJHSBUJPO\OBNF^ oil generate migration add_image_to_post image:varchar[200]
  15. &4536563"'6&- $PNQPTFS %PDVNFOUBÇÄP 4VBBQQ 'VFM$PSF "TTFUTDTTKTJNH 1BDPUFTEP'VFM"VUIc0SN 

  16. &4536563""11 "SRVJWPEFJOJDJBMJ[BÇÄPEBBQQ $BDIF $POUSPMMFST .PEFMT .PEFM7JFX $POpHVSBÇÕFT *OJOUFSOBDJPOBMJ[BÇÄP "SRVJWPTEFMPH .JHSBUJPOT

    .ÓEVMPT 5BSFGBT 5FTUFT "SRVJWPTUFNQPSÂSJPT -JCTEFUFSDFJSPT 7JFXTIUNM NVTUBDIF UXJH
  17. $0/530--&3

  18. $0/530--&3#"4& 3&45        

    ):#3*% 5&.1-"5&
  19. class Controller_Posts extends Controller {} class Controller_Posts extends Controller_Template {}

    class Controller_Posts extends Controller_Rest {} class Controller_Posts extends Controller_Hybrid {} #"4& 5&.1-"5& 3&45 ):#3*%
  20. &4536563"$0/530--&3 class Controller_Posts extends Controller { ! public function action_index()

    { return Response::forge(View::forge('posts/index')); } ! }
  21. &4536563"$0/530--&3 class Controller_Posts extends Controller { ! public function action_index()

    { return Response::forge(View::forge('posts/index')); } ! } 1SFpYP$POUSPMMFS@QPEFTFSBMUFSBEPOBT DPOpHVSBÇÕFTQBSBVTBSVNOBNFTQBDF
  22. &4536563"$0/530--&3 class Controller_Posts extends Controller { ! public function action_index()

    { return Response::forge(View::forge('posts/index')); } ! } 5JQPEPDPOUSPMMFS
  23. &4536563"$0/530--&3 class Controller_Posts extends Controller { ! public function action_index()

    { return Response::forge(View::forge('posts/index')); } ! } BDUJPOQPEFSVNWFSCPIUUQDPNPHFU  QPTU QVU EFMFUF
  24. $0/530--&35&.1-"5& class Controller_Posts extends Controller_Template { //default template.php $this->template =

    'template-name'; ! public function action_index() { $this->template->title = 'Template Controller'; $this->template->content = View::forge('posts/index'); } }
  25. $0/530--&35&.1-"5& class Controller_Posts extends Controller_Template { //default template.php $this->template =

    'template-name'; ! public function action_index() { $this->template->title = 'Template Controller'; $this->template->content = View::forge('posts/index'); } } 1FSNJUFBQBTTBHFNEFWBSJÂWFJTFWJFXT QBSBPUFNQMBUF
  26. $0/530--&35&.1-"5& class Controller_Posts extends Controller_Template { //default template.php $this->template =

    'template-name'; ! public function action_index() { $this->template->title = 'Template Controller'; $this->template->content = View::forge('posts/index'); } } 7JFXRVFTFSÂSFOEFSJ[BEBEFOUSPEFTUB ÂSFBOPUFNQMBUF
  27. $0/530--&35&.1-"5& class Controller_Posts extends Controller_Template { //default template.php $this->template =

    'template-name'; ! public function action_index() { $this->template->title = 'Template Controller'; $this->template->content = View::forge('posts/index'); } } 7JFXRVFTFSÂSFOEFSJ[BEBEFOUSPEFTUB ÂSFBOPUFNQMBUF
  28. $0/530--&33&45 class Controller_Test extends Controller_Rest { protected $format = 'json';

    ! public function get_list() { return $this->response(array( 'foo' => Input::get('foo'), 'baz' => array( 1, 50, 219 ), 'empty' => null )); } }
  29. $0/530--&33&45 class Controller_Test extends Controller_Rest { protected $format = 'json';

    ! public function get_list() { return $this->response(array( 'foo' => Input::get('foo'), 'baz' => array( 1, 50, 219 ), 'empty' => null )); } } 'PSNBUPQPEFTFSKTPO YNM DTW IUNM QIQ PVTFSJBMJ[F
  30. $0/530--&33&45 class Controller_Test extends Controller_Rest { protected $format = 'json';

    ! public function get_list() { return $this->response(array( 'foo' => Input::get('foo'), 'baz' => array( 1, 50, 219 ), 'empty' => null )); } } BDUJPOQPEFTFSHFU QPTU QVU EFMFUFPV QBUDI
  31. $0/530--&3):#3*% class Controller_Post extends Controller_Hybrid { protected $format = 'json';

    ! public function action_index() { $this->template->content = View::forge('posts/index'); } ! public function get_list() { return $this->response(array( 'foo' => Input::get('foo'), 'baz' => array( 1, 50, 219 ), 'empty' => null )); } }
  32. .0%&-

  33. namespace Model; ! class Welcome extends \Model { ! public

    static function get_results() { // Interações com o banco de dados } ! }
  34. 03. .0%&-$36% %#26&3:

  35. namespace Model; ! class User extends \Model_Crud { protected static

    $_properties = array( 'id', 'name', 'age', 'birth_date', 'gender', ); ! protected static $_table_name = 'users'; } .0%&-$36%
  36. User::find_all(); ! User::find(); ! User::forge(array( 'name' => 'teste', 'age' =>

    'teste' ... )); .0%&-$36%
  37. namespace Model; ! use Orm\Model; ! class User extends Model

    { protected static $_properties = array( 'id', 'name', ); ! protected static $_table_name = 'users'; ! protected $_observers; protected $_belongs_to; protected $_has_many; protected $_has_one; protected $_many_many; } 03.
  38. 03. $user = new User(); $user->name = 'Dan Jesus'; $user->save();

    ! $users = User::find('all');
  39. 7*&8

  40. .645"$)& 58*( +"%& )".- 4."35: 1"34&3

  41. 'always_load' => array( 'packages' => array( 'parser', ), ) arquivo

    config.php )BCJMJUBOEPQBDLBHFQBSTFS
  42. $view = View::forge('path/to/view', array( 'menu' => $menu, 'articles' => $articles,

    'footer_links' => $footer_links, ))->auto_filter(); ! return $view;
  43. 1"35*"-4 echo render('path/to/view', array( 'menu' => $menu, 'articles' => $articles,

    'footer_links' => $footer_links, ));
  44. $0/'*(63"ª¸&4

  45. %&7&-01.&/5 130%6$5*0/ 45"(*/( 5&45

  46. 'profiling' => true arquivo config.php )BCJMJUBSQIQRVJDLQSPpMMFS

  47. arquivo config.php 'controller_prefix' => 'Controller\\' 6TBSOBNFTQBDFOPTDPOUSPMMFST

  48. arquivo developement/db.php return array( 'default' => array( 'connection' => array(

    'dsn' => 'mysql:host=localhost;dbname=fuel_dev', 'username' => 'root', 'password' => 'root', ), ! 'profilling' => true ), ); $POpHVSBÇÄPEPCBODPEFEBEPT
  49. arquivo config.php )BCJMJUBOEP1BDLBHFT 'always_load' => array( 'packages' => array( 'orm',

    ), )
  50. arquivo routes.php return array( '_root_' => 'welcome/index', // The default

    route '_404_' => 'welcome/404', // The main 404 route 'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'), );
  51. public static function validate($factory) { $val = Validation::forge($factory); $val->add_field('title', 'Title',

    'required|max_length[50]'); $val->add_field('content', 'Content', 'required'); ! return $val; } Validações no model
  52. '6&-$03&

  53. 1SPKFUPOP(JUIVCIUUQTHJUIVCDPNGVFMQIQ $POUSJCVJOEPDPN'VFM1)1IUUQTHJUIVCDPNGVFMGVFMXJLJ$POUSJCVUJOH 'VFM1)1JTTVFUSBDLFSIUUQGVFMQIQDPNDPOUSJCVUFJTTVFUSBDLFS 'VFM1)1IUUQGVFMQIQDPNCMPHTBOVQEBUF 3&'&3­/$*"4

  54. 1&3(6/5"4

  55. 0#3*("%0