web-dev-qa-db-ja.com

誰もが入れてみた PHP WordpressのActiveRecordの?

私はRuby on Railsと仕事をしたことがあり、素晴らしいRoRのActiveRecordに近いものをするコードを探していました。

このサイト を踏んだ。そのPHP-ActiveRecord!

私はそれが素晴らしいと思った、そしてそれはまさに私が探していたものでした、しかし私はWordPressでそれを使用しようとしている誰も見つけなかったので、私は少し怖くなりました。

あなたが共有できる経験はありますか?

私の最初のアイデアは、functions.phpのライブラリを要求し、モデルをフォルダの中に入れて子テーマを作成することでした。私が本当に知らないのは、データベース内のテーブルをどのように処理するのかということです。

さて、あなたの感想を待っています。

3
Mauricio Moraes

あなた自身のコードのためだけにそれを使い、そしてWordPressのデフォルトデータベースドライバ(wpdb)と一緒にそれを走らせるつもりなら、私は本当の問題を見ません。

あなたがWPのドライバを完全に統合/上書きすることを計画している場合に限り、私はそれがほぼ不可能であると思います。ハードコードされたSQLはコア全体で豊富に使用されているため、それらをActiveRecordメソッド呼び出しに変換すると、コード最適化のためのあらゆる努力が無効になります。

確かに、WordPressはあなたのdb.phpディレクトリのwp-contentによるドライバの上書きをサポートしています。

更新: WordPressにPHP ActiveRecordを取り込むには、MUプラグインを使用することをお勧めします。これはテーマの外(それが属していないところ)、WordPressコアの外にそれを保ち、常にロードされることを保証します( _ m _ ust _ u _ seプラグインは非アクティブにできません管理者)。

ライブラリをwp-content/mu-plugins/php-activerecordにコピーします。それから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 は2013年以来、死んでいるプロジェクトです。

代わりに _ wpmvc _ のモデルを使用してください。

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

0
PayteR