corcel = wordpress + laravel - · pdf filecorcel = wordpress + laravel junior grossi julho...

59
Corcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida.

Upload: hoangtram

Post on 01-Feb-2018

233 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Corcel = WordPress + Laravel

Junior Grossi Julho 2016

Como o open source também pode mudar a sua vida.

Page 2: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

35 minutos 20 minutos

Page 3: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

http://slack.phpmg.com

2 encontros mensais1 encontro informal 🍺 + 1 encontro com palestras

Page 4: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Quem sou?• Organizador do PHPMG

• Mestrado em Ciência da Informação (UFMG)

• Pós-graduação em Desenv. de Sistemas Web (PUC)

• MBA em Gestão Empresarial (FGV)

• Bacharelado em Ciência da Computação (PUC)

• Zend Certified Engineer desde 2011

• PHP desde 2004 (12+) & WordPress desde 2011 (5+)

Page 5: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Colecionador de elePHPants

Page 6: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

• Slack PHPMG: @jgrossi

• http://twitter.com/junior_grossi

• http://github.com/jgrossi

• http://blog.jgrossi.com

Page 7: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type
Page 8: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

“Se você é quem mais entende de uma área onde trabalha, está na hora de mudar de emprego."

Page 9: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Conhecimento

Page 10: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Repensar o futuro~ 5 anos

Page 11: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Experiência InternacionalWordPress + Laravel

Page 12: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Open SourceMudou a minha vida

Page 13: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

“Quem não é visto, não é lembrado."

Page 14: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Como tudo começou?

Page 15: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type
Page 16: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type
Page 17: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

WordPress Laravel

x

Page 18: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

CorcelWordPress + Laravel

http://github.com/jgrossi/corcel

Page 19: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type
Page 20: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

(DICA) Começar Pequenowp_post & wp_postmeta

Page 21: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

• Lançado em 06/2013 • 18.000+ downloads no packagist.org • 298 commits (22.07.16) • 800+ stars no Github & 122 forks • 15 releases (v1.1.1) • Devs de 10 países

Page 22: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

$ composer require jgrossi/corcel

Funciona com qualquer app PHP, não somente Laravel. Ex: Silex, Symfony, Zend Framework, Slim, PHP puro, etc

Page 23: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

$post = Post::find(1); $author_name = $post->author->first_name; $address = $post->meta->address; $featured_image = $post->image;

Page 24: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

<?php // app/Http/routes.php

Route::get(‘/posts’, function() { $posts = Post::lastest()->paginate(10)—>get(); return view(‘posts/index’, compact(‘posts’); }

Route::get(‘/posts/{slug}’, function($slug) { $post = Post::slug($slug)->first(); return view(‘posts/show’, compact(‘post’); }

Page 25: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Connections

Page 26: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

<?php // config/database.php

'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'engine' => null, ],

'wordpress' => [ 'driver' => 'mysql', 'host' => env(‘WP_DB_HOST', 'localhost'), 'port' => env(‘WP_DB_PORT', '3306'), 'database' => env(‘WP_DB_DATABASE', 'forge'), 'username' => env(‘WP_DB_USERNAME', 'forge'), 'password' => env(‘WP_DB_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => ‘wp_', 'strict' => false, 'engine' => null, ],

Page 27: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

<?php namespace App;

class Post extends Corcel\Post { protected $connection = ‘wordpress’; }

class Foo extends Eloquent { protected $connection = ‘mysql’; }

// connection injection

$nickname = Post::find(10)->author->nickname; $bar = Foo::find(11)->foo->bar;

Page 28: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Relationships

Page 29: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

$post = Post::find(1);

$author = $post->author; echo $author->first_name; echo $author->created_at->format(‘d.m.Y’);

foreach ($post->comments as $comment) { echo $comment->author; }

Page 30: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Custom Fields (Meta)

Page 31: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

$post = Post::find(1);

// custom field named ‘address’

$address = $post->meta->address; // OR $address = $post->fields->address; // OR $address = $post->address;

// Advanced Custom Fields (ACF) support

Page 32: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Saving?

Page 33: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

$post = new Post; $post->post_title = ‘My first post’;

$post->meta->username = 'jgrossi'; $post->meta->url = ‘http://jgrossi.com';

$post->save();

Page 34: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Custom Post Type

Page 35: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

// using ‘type()’ method for ‘video’ post type

$videos = Post::type(‘video’)->published()->get();

// @return instanceof Corcel\Post

Page 36: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

// custom post type class

namespace App;

class Video extends Corcel\Post { protected $postType = ‘video’; }

$videos = Video::published()->get();

// @return instanceof App\Video

Page 37: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Taxonomy

Page 38: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

$post = Post::taxonomy('category', 'php')->first();

Page 39: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Attachments & Images

Page 40: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

$page = Page::find(1); $attachment = $page->attachment; $url = $attachment->url;

$page = Page::find(2); $image_url = $page->image;

Page 41: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Menu

Page 42: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

$menu = Menu::slug('primary')->first();

foreach ($menu->nav_items as $item) { echo $item->title; echo $item->name; echo $item->url; }

Page 43: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Users

Page 44: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

$users = User::all();

foreach ($users as $user) { echo $user->first_name; }

Page 45: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

AuthenticationLaravel

Page 46: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

// config/app.php

'providers' => [ Corcel\Providers\Laravel\AuthServiceProvider::class, ],

// config/auth.php

'providers' => [ 'users' => [ 'driver' => 'corcel', 'model' => Corcel\User::class, ], ],

Page 47: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

$data = ['email' => $email, 'password' => $password];

if (Auth::attempt($data)) { return redirect()->intended('admin'); }

Page 48: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Shortcode

Page 49: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

// [gallery id="1"]

Post::addShortcode('gallery', function ($shortcode) { return sprintf(‘%s.%s’, $shortcode->getName(), $shortcode->getParameter('id'); ); });

$post = Post::find(1); echo $post->content;

Page 50: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Próximos Passos

Page 51: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

• github.com/jgrossi/corcel github.com/corcel

• Plugins (SEO & Translate)

• github.com/corcel/seo

• github.com/corcel/translate

// composer.json

“require”: { “corcel/corcel”: “^1.0.0”, “corcel/seo”: “…”, “corcel/translate": “…” }

Page 52: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Qualquer ajuda é sempre bem vinda

Page 53: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Importância do Open Source

Page 54: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Começar pequenoMania de grandeza

Page 55: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Importância do Githubhttp://github.com

Page 56: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

“Quem não é visto, não é lembrado."

Divulgue!

Page 57: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

PHP Innovation Award Winner May 2016 http://phpclasses.org

Page 58: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

https://laravel-news.com/2016/01/wordpress-and-laravel/

https://medium.com/@jgrossi/laravel-and-wordpress-together-with-corcel-4cc4965d87c4

http://blog.jgrossi.com/2014/working-with-laravel-4-and-wordpress-together

http://github.com/jgrossi/corcel

Page 59: Corcel = WordPress + Laravel - · PDF fileCorcel = WordPress + Laravel Junior Grossi Julho 2016 Como o open source também pode mudar a sua vida. 35 minutos ... Custom Post Type

Obrigado! Perguntas?