DESENVOLVENDO
DESENVOLVENDO
para a WEB
com
Quem é esse cara para falar isso?
Quem é esse cara para falar isso?
● Técnico, bacharéu e
especialista
● Analista, programador
freelancer e palestrante
● ~1...
Menção honrosa
O “Cake” é isso?
É um framework de
código-aberto, feito em
PHP, que provê uma
arquitetura padronizada
para desenvolvimento...
O “Cake” é isso?
É um framework de
código-aberto, feito em
PHP, que provê uma
arquitetura padronizada
para desenvolvimento...
Características
Desenvolva
com rapidez
Configuração
zero
Fácil de
aprender
Pilhas
incluídas
Convenções
MVC intuitivas
Segu...
O padrão MVC
DBDB
ModelModel
ControllerController
ViewView
DispatcherDispatcher
RoutesRoutes
Web ServerWeb Server
BrowserB...
Boas práticas
Na prática
$ curl -s http://getcomposer.com/installer | php
● $
Na prática
$ curl -s http://getcomposer.com/installer | php
$ ls
composer.phar*
$
Na prática
$ curl -s http://getcomposer.com/installer | php
$ ls
composer.phar*
$ php composer.phar create-project 
--pref...
Na prática
$ curl -s http://getcomposer.com/installer | php
$ ls
composer.phar*
$ php composer.phar create-project 
--pref...
Na prática
$ tree -L 1 simpleblog
├── bin/
├── composer.json
├── config/
├── index.php
├── logs/
├── plugins/
├── README.m...
Na prática
$ cd simpleblog
● $
Na prática
$ cd simpleblog
● $ ./bin/cake server
Welcome to CakePHP v3.0.3 Console
---------------------------------------...
Padrões de nomenclatura
DBDB
ModelModel
ControllerController
ViewView
posts
postsTable
(plural)
Post
(singular)
PostsContr...
Padrões de nomenclatura
DBDB
ModelModel
ControllerController
ViewView
posts
postsTable
(plural)
Post
(singular)
PostsContr...
Receita de blog à la CakePHP
Receita de blog à la CakePHP
Ingredientes
● 1 banco de dados
● 1 navegador web
● 1 editor de texto
● CakePHP à gosto :-)
T...
Receita de blog à la CakePHP
Modo de preparo
1.Informe a conexão ao banco no arquivo
config/app.php
<?php
...
'Datasources...
Receita de blog à la CakePHP
2.Crie uma classe para a tabela posts em
src/Model/Table/PostsTable.php
<?php
namespace AppMo...
Receita de blog à la CakePHP
3.Crie o controller para os posts do blog em
src/Controller/???
<?php
namespace AppController...
Receita de blog à la CakePHP
3.Crie o controller para os posts do blog em
src/Controller/PostsController.php
<?php
namespa...
Receita de blog à la CakePHP
3.Inclua uma ação default neste controller
src/Controller/PostsController.php
<?php
namespace...
Receita de blog à la CakePHP
3.Inclua uma ação default neste controller
src/Controller/PostsController.php
<?php
namespace...
Receita de blog à la CakePHP
4.Crie a view correspondente à ação em
src/Template/Posts/index.ctp
<?php foreach($posts as $...
Se é CRUD, pode gerar código
$ cd simpleblog
● $ ./bin/cake server
Welcome to CakePHP v3.0.3 Console
---------------------...
Se é CRUD, pode gerar código
$ ./bin/cake bake all posts
Se é CRUD, pode gerar código
$ ./bin/cake bake all posts
Welcome to CakePHP v3.0.3 Console
-------------------------------...
Se é CRUD, pode gerar código
…
Baking `index` view file...
Creating file src/Template/Posts/index.ctp
…
Baking `view` view...
OBRIGADO!OBRIGADO!
Próximos SlideShares
Carregando em…5
×

Desenvolvimento para a Web com CakePHP

501 visualizações

Publicada em

Slides de apresentação introdutória ao framework CakePHP. Contém conceitos e trechos de código ilustrativos de uso da ferramenta. Na apresentação apresento ainda exemplos de código da aplicação contruída além de todo o networking e troca de experiências.

Originalmente ministrada a uma plateia de estudantes no evento BelemCodeIn2015() em 08 de maio de 2015 no IFPA em Belém.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
501
No SlideShare
0
A partir de incorporações
0
Número de incorporações
5
Ações
Compartilhamentos
0
Downloads
19
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Desenvolvimento para a Web com CakePHP

  1. 1. DESENVOLVENDO DESENVOLVENDO para a WEB com
  2. 2. Quem é esse cara para falar isso?
  3. 3. Quem é esse cara para falar isso? ● Técnico, bacharéu e especialista ● Analista, programador freelancer e palestrante ● ~15 anos de experiência profissional ● Moderador da lista cakephp-pt e maior tradutor em língua portuguesa do CakePHP (até v.1.2)
  4. 4. Menção honrosa
  5. 5. O “Cake” é isso? É um framework de código-aberto, feito em PHP, que provê uma arquitetura padronizada para desenvolvimento rápido de aplicações web, utilizando boas práticas de engenharia de software como padrões de projetos.
  6. 6. O “Cake” é isso? É um framework de código-aberto, feito em PHP, que provê uma arquitetura padronizada para desenvolvimento rápido de aplicações web, utilizando boas práticas de engenharia de software como padrões de projetos.
  7. 7. Características Desenvolva com rapidez Configuração zero Fácil de aprender Pilhas incluídas Convenções MVC intuitivas Seguro
  8. 8. O padrão MVC DBDB ModelModel ControllerController ViewView DispatcherDispatcher RoutesRoutes Web ServerWeb Server BrowserBrowser
  9. 9. Boas práticas
  10. 10. Na prática $ curl -s http://getcomposer.com/installer | php ● $
  11. 11. Na prática $ curl -s http://getcomposer.com/installer | php $ ls composer.phar* $
  12. 12. Na prática $ curl -s http://getcomposer.com/installer | php $ ls composer.phar* $ php composer.phar create-project --prefer-dist cakephp/app simpleblog $
  13. 13. Na prática $ curl -s http://getcomposer.com/installer | php $ ls composer.phar* $ php composer.phar create-project --prefer-dist cakephp/app simpleblog $ ls composer.phar* simpleblog/ $
  14. 14. Na prática $ tree -L 1 simpleblog ├── bin/ ├── composer.json ├── config/ ├── index.php ├── logs/ ├── plugins/ ├── README.md ├── src/ ├── tests/ ├── tmp/ ├── vendor/ └── webroot/
  15. 15. Na prática $ cd simpleblog ● $
  16. 16. Na prática $ cd simpleblog ● $ ./bin/cake server Welcome to CakePHP v3.0.3 Console --------------------------------------------------------------- App : src Path: /home/marcelo/simpleblog/src/ DocumentRoot: /home/marcelo/simpleblog/webroot --------------------------------------------------------------- built-in server is running in http://localhost:8765/ You can exit with `CTRL-C` ●
  17. 17. Padrões de nomenclatura DBDB ModelModel ControllerController ViewView posts postsTable (plural) Post (singular) PostsController (plural) posts/index.ctp posts/view.ctp posts/edit.ctp posts/add.ctp (plural) PostPost id* title content created modified id* title content created modified share()share()
  18. 18. Padrões de nomenclatura DBDB ModelModel ControllerController ViewView posts postsTable (plural) Post (singular) PostsController (plural) posts/index.ctp posts/view.ctp posts/edit.ctp posts/add.ctp (plural) PostPost id* title content created modified id* title content created modified share()share() www.site.com/posts/view/1www.site.com/posts/view/1
  19. 19. Receita de blog à la CakePHP
  20. 20. Receita de blog à la CakePHP Ingredientes ● 1 banco de dados ● 1 navegador web ● 1 editor de texto ● CakePHP à gosto :-) Tempo de preparo ● 15 minutos
  21. 21. Receita de blog à la CakePHP Modo de preparo 1.Informe a conexão ao banco no arquivo config/app.php <?php ... 'Datasources' => [ 'default' => [ 'host' => 'localhost', 'username' => 'dbuser', 'password' => '83L3M#C0dE!', 'database' => 'simpleblog', ... <?php ... 'Datasources' => [ 'default' => [ 'host' => 'localhost', 'username' => 'dbuser', 'password' => '83L3M#C0dE!', 'database' => 'simpleblog', ...
  22. 22. Receita de blog à la CakePHP 2.Crie uma classe para a tabela posts em src/Model/Table/PostsTable.php <?php namespace AppModelTable; use CakeORMTable; class PostsTable extends Table { public function initialize(array $config) { $this->addBehavior('Timestamp'); } } <?php namespace AppModelTable; use CakeORMTable; class PostsTable extends Table { public function initialize(array $config) { $this->addBehavior('Timestamp'); } } Isto cria implicitamente o model Post.
  23. 23. Receita de blog à la CakePHP 3.Crie o controller para os posts do blog em src/Controller/??? <?php namespace AppController; class ??? <?php namespace AppController; class ???
  24. 24. Receita de blog à la CakePHP 3.Crie o controller para os posts do blog em src/Controller/PostsController.php <?php namespace AppController; class PostsController extends AppController { } <?php namespace AppController; class PostsController extends AppController { }
  25. 25. Receita de blog à la CakePHP 3.Inclua uma ação default neste controller src/Controller/PostsController.php <?php namespace AppController; class PostsController extends AppController { public function index() { $posts = $this->Posts->find('all'); $this->set('posts', $posts); } } <?php namespace AppController; class PostsController extends AppController { public function index() { $posts = $this->Posts->find('all'); $this->set('posts', $posts); } }
  26. 26. Receita de blog à la CakePHP 3.Inclua uma ação default neste controller src/Controller/PostsController.php <?php namespace AppController; class PostsController extends AppController { public function index() { $posts = $this->Posts->find('all'); $this->set(compact('posts')); } } <?php namespace AppController; class PostsController extends AppController { public function index() { $posts = $this->Posts->find('all'); $this->set(compact('posts')); } }
  27. 27. Receita de blog à la CakePHP 4.Crie a view correspondente à ação em src/Template/Posts/index.ctp <?php foreach($posts as $post): ?> <article> <h1><?= $this->Html->link( $post->title, ['action' => 'view', $post->id]) ?></h1> <small>Postado em <?= $this->Time->nice( $post->created) ?></small> <?= $this->Text->excerpt($post->content, null) ?> </article> <? endforeach; ?> <?php foreach($posts as $post): ?> <article> <h1><?= $this->Html->link( $post->title, ['action' => 'view', $post->id]) ?></h1> <small>Postado em <?= $this->Time->nice( $post->created) ?></small> <?= $this->Text->excerpt($post->content, null) ?> </article> <? endforeach; ?> ...e veja o resultado :-)
  28. 28. Se é CRUD, pode gerar código $ cd simpleblog ● $ ./bin/cake server Welcome to CakePHP v3.0.3 Console --------------------------------------------------------------- App : src Path: /home/marcelo/simpleblog/src/ DocumentRoot: /home/marcelo/simpleblog/webroot --------------------------------------------------------------- built-in server is running in http://localhost:8765/ You can exit with `CTRL-C` ●
  29. 29. Se é CRUD, pode gerar código $ ./bin/cake bake all posts
  30. 30. Se é CRUD, pode gerar código $ ./bin/cake bake all posts Welcome to CakePHP v3.0.3 Console -------------------------------------------------------- … Baking table class for Posts... Creating file src/Model/Table/PostsTable.php … Baking entity class for Post... Creating file src/Model/Entity/Post.php … Baking controller class for Posts... Creating file src/Controller/PostsController.php
  31. 31. Se é CRUD, pode gerar código … Baking `index` view file... Creating file src/Template/Posts/index.ctp … Baking `view` view file... Creating file src/Template/Posts/view.ctp … Baking `add` view file... Creating file src/Template/Posts/add.ctp … Baking `edit` view file... Creating file src/Template/Posts/edit.ctp Bake All complete.
  32. 32. OBRIGADO!OBRIGADO!

×