私はかなり長い間アクティブレコードを使用していて、少し風景を変えたいと思っていました。開発者の友人の何人かはORMを調べることを提案しました。私が見たすべてのORMプロジェクトには、ORMクラスを拡張する別のクラスが必要です。
私の質問は、関数内からPHPを 使用して動的にクラスを作成する方法はありますeval
か?
これは私が持っているものです:
<?php
class Constructor
{
function new_class($class)
{
$myself = get_called_class();
eval("class {$class} extends {$myself} { }");
}
function say_hi()
{
$class = get_called_class();
echo "Hi, {$class}!";
}
}
$constructor = new Constructor;
$constructor->new_class("Greeter");
$greeter = new Greeter;
$greeter->say_hi(); // Hi, Greeter!
しかし、私のクライアントは、eval
彼が共有ホスティングを使用しているために、彼の環境でブロックされていることを通知します。