web-dev-qa-db-fra.com

Quelqu'un at-il essayé de mettre PHP ActiveRecord sur Wordpress?

J'ai travaillé avec Ruby on Rails et je cherchais du code qui ferait quelque chose de proche du merveilleux ActiveRecord de RoR.

Je suis passé par ce site . Son PHP-ActiveRecord!

J'ai trouvé ça incroyable, et c'était exactement ce que je cherchais, mais je n'ai trouvé personne qui essaye de l'utiliser sur WordPress, alors j'ai eu un peu peur.

Des expériences que vous pourriez partager?

Ma première idée était de requérir la bibliothèque dans functions.php et de créer un thème enfant avec les modèles contenus dans un dossier. Ce que je ne sais vraiment pas, c'est comment il va gérer les tables de la base de données avec lesquelles il ne peut pas jouer.

Eh bien, j'attendrai vos impressions.

3
Mauricio Moraes

Si vous envisagez de l'utiliser uniquement pour votre propre code et de le faire fonctionner parallèlement au pilote de base de données par défaut de WordPress (wpdb), je ne vois aucun problème réel.

Ce n'est que si vous envisagez d'intégrer/de remplacer complètement le pilote de WP que je vois cela presque impossible. SQL codé en dur est prolifique dans l’ensemble du noyau et sa traduction en appels de méthode ActiveRecord ferait échec à tout effort d’optimisation du code.

FWIW, WordPress prend en charge une substitution de pilote avec db.php dans votre répertoire wp-content.

Mise à jour: Pour amener PHP ActiveRecord dans WordPress, je suggérerais d'utiliser un plugin MU. Cela le garde en dehors du thème (auquel il n'appartient pas), en dehors du noyau WordPress et garantit qu'il est toujours chargé (M ust U Les plug-ins ne peuvent pas être désactivés dans l'administrateur).

Copiez la bibliothèque dans wp-content/mu-plugins/php-activerecord. Puis dans 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:%s@%s/%s?charset=%s', DB_USER, DB_PASSWORD, DB_Host, DB_NAME, DB_CHARSET ),
            )
        );

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

PHPactiverecord est un projet mort depuis 2013.

Essayez plutôt d’utiliser des modèles de WPMVC .

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

0
PayteR