Wer oder was ist Corcel?
WordPress ist immer noch ungeschlagene Nummer Eins unter den Content Management Systemen. Jeder Web-Developer kommt früher oder später damit in irgendeiner Weise in Kontakt. Dabei spalten sich die Lager, die einen lieben WordPress, die anderen hassen es!
Ich selbst entwickle bereits seit vielen Jahren für WordPress und bin an die Welt der WordPress-Funktionen gewöhnt. Zu meiner Schande muss ich gestehen dass ich erst vor relativ kurzer Zeit angefangen habe, mich mit Laravel zu beschäftigen. Und doch hat diese kurze Zeit gereicht, mich vollkommen dafür zu begeistern. Mein Code ist so viel einfacher und klarer geworden, und das Entwickeln mit Laravel macht wahnsinnig viel Spaß.
Zum vollkommenen Glück hat mir nur noch eins gefehlt, das Verbindungsstück zwischen den beiden Welten von WordPress und Laravel. Sehr zu meiner Freude hat sich bereits jemand viele Gedanken zum Thema gemacht, und heraus kam eine feine Sammlung namens CORCEL.
Was macht Corcel so besonders praktisch?
Corcel wurde entwickelt um einfach und effizient Daten von der WordPresss-Datenbank abzufragen und zu bearbeiten. Hierbei wird nicht erst der Umweg über die WordPress REST API gegangen, sondern direkt auf die Datenbank zugegriffen.
Download
GitHub Repository
Installation
Was brauchen wir um Corcel zu verwenden? Zuallererst lediglich eine WordPress-Installation, und außerdem das Gerüst unseres PHP-Frameworks, vorzugsweise natürlich Laravel. Dort können wir mit Hilfe von Composer das Paket installieren.
composer require jgrossi/corcel
Mit Hilfe von Corcel können wir elegant im MVC-Pattern entwickeln, so wie wir es von Laravel kennen. Es besteht sogar die Möglichkeit, mehrere Datenbankverbindungen zu verwenden, eine für WordPress und eine andere für unsere Laravel-App, wenn wir das möchten.
Code-Beispiel
Hier noch ein kurzer Einblick in die wunderbare, simple Welt von diesem Paket:
public function index() { $posts = Post::published()->take(10)->get(); $page = Page::where('post_name', 'about')->first(); return view('posts.index', compact('posts', 'page')); }
Unterstützte WordPress-Datentypen
Unser neuer Helfer unterstützt aber noch viele weitere WordPress-Datentypen:
- Custom Post Types
- Custom Meta Fields (z.B. ACF)
- Taxonomien
- Optionen
- User
- …
Meta-Daten manipulieren
Auch auf Meta-Daten kann man in gewohnt lässiger Laravel-Art zugreifen und diese auch direkt bearbeiten.
$post = Post::find(5); echo $post->meta->link; // OR echo $post->fields->link; echo $post->link; // OR
Dies erleichtert natürlich auch die Abfrage nach bestimmten Posts anhand dessen Meta-Daten:
// Find a published post which matches both meta_key and meta_value. $post = Post::published()->hasMeta('username', 'wpcraft')->first();
Custom Post Types
Auch die Arbeit mit CPT geht um einiges effizienter von der Hand. Entweder benutzt man die Post-Klasse zusammen mit der type()
Methode oder man erweitert gleich die Klasse und kann sie anschließend direkt als Modell verwenden.
// using type() method $videos = Post::type('video')->status('publish')->get(); // using your own class class Video extends Corcel\Post { protected $postType = 'video'; } $videos = Video::status('publish')->get();
Taxonomien
Ihr habt es euch bestimmt schon gedacht, auch Taxonomien lassen sich unglaublich einfach abfragen. Auch hierzu finden wir auf der GitHub-Seite ein kleines Code-Beispiel:
$post = Post::find(1); $taxonomy = $post->taxonomies()->first(); echo $taxonomy->taxonomy;
Oder man nutzt die Taxonomie um die ihr zugeordneten Posts zu finden (in diesem Beispiel den dersten):
$post = Post::taxonomy('category', 'php')->first();
Optionen
Mit Hilfe der Option
Klasse können wir Daten aus der wp_options
Tabelle abfragen, verändern, und sogar neu anlegen.
$siteUrl = Option::get('siteurl'); Option::add('foo', 'bar');
Benutzer
Hier noch ein kleines Beispiel dazu, wie man mit der User
Klasse arbeiten kann:
// All users $users = User::get(); // A specific user $user = User::find(1); echo $user->user_login;
Erweiterungen
Auf GitHub finden man vom selben Author bereits Erweiterungen für das Paket:
Fortsetzung folgt…
Nach dieser kleinen Aussicht auf Corcel hoffe ich dass ihr Lust auf mehr bekommen habt und in Zukunft hier vorbeischaut um mehr über darüber zu erfahren.
Hat euch dieser Artikel gefallen? Dann hinterlasst mir gerne einen Kommentar, ich freue mich auf euer Feedback!
