corcel = wordpress + laravel. como o open source também pode
TRANSCRIPT
![Page 1: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/1.jpg)
Corcel = WordPress + Laravel
Junior Grossi Julho 2016
Como o open source também pode mudar a sua vida.
![Page 2: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/2.jpg)
35 minutos 20 minutos
![Page 3: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/3.jpg)
http://slack.phpmg.com
2 encontros mensais1 encontro informal 🍺 + 1 encontro com palestras
![Page 4: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/4.jpg)
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. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/5.jpg)
Colecionador de elePHPants
![Page 6: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/6.jpg)
• Slack PHPMG: @jgrossi
• http://twitter.com/junior_grossi
• http://github.com/jgrossi
• http://blog.jgrossi.com
![Page 7: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/7.jpg)
![Page 8: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/8.jpg)
“Se você é quem mais entende de uma área onde trabalha, está na hora de mudar de emprego."
![Page 9: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/9.jpg)
Conhecimento
![Page 10: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/10.jpg)
Repensar o futuro~ 5 anos
![Page 11: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/11.jpg)
Experiência InternacionalWordPress + Laravel
![Page 12: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/12.jpg)
Open SourceMudou a minha vida
![Page 13: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/13.jpg)
“Quem não é visto, não é lembrado."
![Page 14: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/14.jpg)
Como tudo começou?
![Page 15: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/15.jpg)
![Page 16: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/16.jpg)
![Page 17: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/17.jpg)
WordPress Laravel
x
![Page 19: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/19.jpg)
![Page 20: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/20.jpg)
(DICA) Começar Pequenowp_post & wp_postmeta
![Page 21: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/21.jpg)
• 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. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/22.jpg)
$ 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. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/23.jpg)
$post = Post::find(1); $author_name = $post->author->first_name; $address = $post->meta->address; $featured_image = $post->image;
![Page 24: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/24.jpg)
<?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. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/25.jpg)
Connections
![Page 26: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/26.jpg)
<?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. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/27.jpg)
<?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. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/28.jpg)
Relationships
![Page 29: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/29.jpg)
$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. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/30.jpg)
Custom Fields (Meta)
![Page 31: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/31.jpg)
$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. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/32.jpg)
Saving?
![Page 33: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/33.jpg)
$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. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/34.jpg)
Custom Post Type
![Page 35: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/35.jpg)
// using ‘type()’ method for ‘video’ post type
$videos = Post::type(‘video’)->published()->get();
// @return instanceof Corcel\Post
![Page 36: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/36.jpg)
// 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. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/37.jpg)
Taxonomy
![Page 38: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/38.jpg)
$post = Post::taxonomy('category', 'php')->first();
![Page 39: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/39.jpg)
Attachments & Images
![Page 40: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/40.jpg)
$page = Page::find(1); $attachment = $page->attachment; $url = $attachment->url;
$page = Page::find(2); $image_url = $page->image;
![Page 41: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/41.jpg)
Menu
![Page 42: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/42.jpg)
$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. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/43.jpg)
Users
![Page 44: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/44.jpg)
$users = User::all();
foreach ($users as $user) { echo $user->first_name; }
![Page 45: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/45.jpg)
AuthenticationLaravel
![Page 46: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/46.jpg)
// 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. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/47.jpg)
$data = ['email' => $email, 'password' => $password];
if (Auth::attempt($data)) { return redirect()->intended('admin'); }
![Page 48: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/48.jpg)
Shortcode
![Page 49: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/49.jpg)
// [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. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/50.jpg)
Próximos Passos
![Page 51: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/51.jpg)
• 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. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/52.jpg)
Qualquer ajuda é sempre bem vinda
![Page 53: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/53.jpg)
Importância do Open Source
![Page 54: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/54.jpg)
Começar pequenoMania de grandeza
![Page 56: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/56.jpg)
“Quem não é visto, não é lembrado."
Divulgue!
![Page 58: Corcel = WordPress + Laravel. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/58.jpg)
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. Como o open source também pode](https://reader035.vdocuments.net/reader035/viewer/2022062317/587223a41a28ab431c8c02c7/html5/thumbnails/59.jpg)
Obrigado! Perguntas?