wake-up-neo.com

Hat jemand versucht zu setzen PHP ActiveRecord auf Wordpress?

Ich habe mit Ruby on Rails gearbeitet und nach einem Code gesucht, der dem ActiveRecord des wunderbaren RoR nahekommt.

Ich bin an dieser Seite vorbeigekommen. Sein PHP-ActiveRecord!

Ich fand es erstaunlich und es war genau das, wonach ich suchte, aber ich fand niemanden, der versuchte, es auf WordPress zu verwenden, also bekam ich ein wenig Angst.

Welche Erfahrungen konnten Sie mitteilen?

Meine erste Idee war, die Bibliothek in functions.php zu benötigen und ein untergeordnetes Thema mit den Modellen in einem Ordner zu erstellen. Was ich wirklich nicht weiß, ist, wie es mit den Tabellen in der Datenbank umgeht, mit denen es sich nicht anlegen kann.

Nun, ich warte auf deine Eindrücke.

3
Mauricio Moraes

Wenn Sie vorhaben, es nur für Ihren eigenen Code zu verwenden und es neben WordPress 'Standard-Datenbanktreiber (wpdb) laufen zu lassen, sehe ich keine wirklichen Probleme.

Nur wenn Sie vorhaben, den WP-Treiber vollständig zu integrieren/zu überschreiben, sehe ich dies als nahezu unmöglich an. Hartcodiertes SQL ist im gesamten Kern produktiv, und die Übersetzung in ActiveRecord-Methodenaufrufe würde jegliche Bemühungen zur Codeoptimierung zunichte machen.

FWIW, WordPress unterstützt eine Treiberüberschreibung mit db.php in Ihrem wp-content-Verzeichnis.

Update: Um PHP ActiveRecord in WordPress zu bringen, würde ich die Verwendung eines MU-Plugins vorschlagen. Dies hält es außerhalb des Themas (wo es nicht hingehört), außerhalb des WordPress-Kerns und stellt sicher, dass es immer geladen ist (MustUse Plugins können in nicht deaktiviert werden der Admin).

Kopieren Sie die Bibliothek nach wp-content/mu-plugins/php-activerecord. Dann in wp-content/mu-plugins/php-activerecord.php:

<?php

/**
 * Plugin Name: PHP ActiveRecord
 * Description: Load the PHP ActiveRecord library for use in plugins &amp; themes.
 * Version:     0.1
 * Author:      TheDeadMedic
 * Author URI:  http://wordpress.stackexchange.com/users/1685/thedeadmedic
 * Plugin URI:  http://wordpress.stackexchange.com/a/155530
 */

require_once dirname( __file__ ) . '/php-activerecord/ActiveRecord.php';

ActiveRecord\Config::initialize(
    function ( $cfg ) {
        $cfg->set_model_directory( '/path/to/your/model_directory' );
        $cfg->set_connections(
            array(
                'wordpress' => sprintf( 'mysql://%s:%[email protected]%s/%s?charset=%s', DB_USER, DB_PASSWORD, DB_Host, DB_NAME, DB_CHARSET ),
            )
        );

        $cfg->set_default_connection( 'wordpress' );
    }
);
4
TheDeadMedic

PHPactiverecord ist seit 2013 ein totes Projekt.

Versuchen Sie stattdessen, Modelle von WPMVC zu verwenden.

http://wpmvc.org/documentation/models/

0
PayteR