Slide 1

Slide 1 text

CakePHP: In about 15 minutes or less Justin Yost Web Developer at Loadsys CC BY-NC 4.0 Justin Yost 1

Slide 2

Slide 2 text

CakePHP Highlights — Convention over Configuration — MVC — "Build fast, grow solid" — PHP 5.5+ — ORM blends ActiveRecord and Datamapper CC BY-NC 4.0 Justin Yost 2

Slide 3

Slide 3 text

CakePHP — composer create-project --prefer-dist cakephp/app {awesome-app} — Build Tables — Setup DB configuration — bin/cake bake all {table-name} — Done with CRUD for {table-name} CC BY-NC 4.0 Justin Yost 3

Slide 4

Slide 4 text

CC BY-NC 4.0 Justin Yost 4

Slide 5

Slide 5 text

CakePHP Core Classes — Table — Entity — View — Controller CC BY-NC 4.0 Justin Yost 5

Slide 6

Slide 6 text

CakePHP: Table public function findOwnedBy(Query $query, array $options) { $user = $options['user']; return $query->where(['author_id' => $user->id]); } CC BY-NC 4.0 Justin Yost 6

Slide 7

Slide 7 text

CakePHP: Entity protected function _getFullName() { return $this->_properties['first_name'] . ' ' . $this->_properties['last_name']; } CC BY-NC 4.0 Justin Yost 7

Slide 8

Slide 8 text

CakePHP: View
  • = $this->element('user', ['user' => $user]) ?>
  • CC BY-NC 4.0 Justin Yost 8

    Slide 9

    Slide 9 text

    CakePHP: Controller public function add() { $user = $this->Users->newEntity(); if ($this->request->is('post')) { $user = $this->Users->patchEntity($user, $this->request->data); if ($this->Users->save($user)) { $this->Flash->success(__('You are now registered.')); } else { $this->Flash->error(__('There were some problems.')); } } $this->set('user', $user); } CC BY-NC 4.0 Justin Yost 9

    Slide 10

    Slide 10 text

    Why I like CakePHP — Rich and extensive core foundational layer with lots of room to grow — ORM is amazing — Solid, Rich documentation CC BY-NC 4.0 Justin Yost 10

    Slide 11

    Slide 11 text

    CakePHP Support, misc — cakephp.org — book.cakephp.org — api.cakephp.org CC BY-NC 4.0 Justin Yost 11

    Slide 12

    Slide 12 text

    Thanks/Questions? — twitter.com/justinyost — github.com/justinyost — justinyost.com — loadsys.com — lynda.com/justinyost CC BY-NC 4.0 Justin Yost 12