Я случайно создаю свой собственный фреймворк. (Прежде чем начать, пожалуйста, посмотрите PS в конце!)
Так, например, у меня есть:
class MessageSchedule
{
use Utility;
protected $messageScheduleID;
protected $messageScheduleName;
...
protected $minDaysPerWeek = 7;
protected $maxDaysPerWeek = 3;
protected $currentTimeZone = "Pacific/Honolulu";
}
class MessageSendList
{
use Utility;
protected $messageSendListID = NULL;
protected $messageScheduleID = NULL;
protected $messageScheduleName = NULL;
...
protected $currentTimeZone = NULL;
}
Все таблицы в базе данных имеют зеркальные классы с ТОЧНО одинаковыми именами для переменных и атрибутов. Теперь в моих чертах Utility у меня есть функции для выполнения CRUD и чтения экземпляра объекта в скрипт в виде массива ключ / значение, который я затем могу extract
.
Используя вычисленные имена атрибутов любого класса, я могу быстро (и очень грязно) заполнить объект с помощью цикла foreach
, реализующего сортировку ...
$thisThing = new Thing;
$thisThing -> setThisValue = $thisValue;
... etc
Я могу сделать это таким образом, НО было бы менее подвержено ошибкам, если бы я мог просто сортировать функцию «клонировать, если есть атрибуты» в PHP. Сортировка:
$thisFoo = new Foo;
$thisBar = new Bar;
$thisOne = $thisFoo->doCreat(12); //Instantiates Foo with values from FooID=12
$thisBar = partialClone($thisOne); // If PHP had a partial clone! That is what I am looking for.
В моем случае он скопировал бы значения $messageScheduleID $messageScheduleName and $timeZone
в новый экземпляр MessageSendList
.
Надеюсь, что это смутно понятно.
Спасибо. Стив
... Позже: это то, что я сейчас использую и пытаюсь заменить.
$thisSendList = new MessageSendList();
$vars = $thisSendList->classAttributes();//Generic find attribute name
foreach ($vars as $var)
{
if (isset($$var))
{
$thisSendList -> doSet($var, $$var); // Generic set attributes
}
}
$thisSendList -> doCreate();
PS ОК, я ЗНАЮ , что я ДОЛЖЕН использовать Laravel или что-то подобное, но кривая обучения там довольно крутая. Я уже должен использовать jQuery, PHP, SQL, HTML, CSS, phpStorm (почти сам по себе язык программирования) и т. Д. И т. Д.
Я довольно хороший (очень медленный) программист, и я могу кодировать что угодно икак только я это сделаю, я это понимаю. Однажды я, вероятно, перееду в Ларавел, но на данный момент это слишком далеко для меня ... и я знаю, что кто-то все равно скажет: "Почему бы не использовать Yi" или что-то еще. Мне 64 года, памяти нет (слишком много конопли), так что ...