Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
… А всего лишь правильно и однозначно даны имена переменным и функциям.
class MailerWrap
{
public function send($params)
{
return Mailer::send($params);
}
}Надо тестировать код приложения, который с ним взаимодействует
Но благодаря ООП и специально подготовленному классу User можно написать значительно короче и понятнее:
$user->loadById($id);
echo $user->name;
$user = User::findById($id);
$user = User::model()->findByPk($id);$user = user_load($id);$post = Post::find($id);
$user = user_load($id);
$user->validate();
можем изменить данные и вызвать метод save объекта $user и сохранить запись в таблице, можем провести вализацию
user_save($user);
user_validate($user);
foreach($modifiedObjects as &$object)
{
if ($object -> validate())
{
$object -> save()
}
else
{
$objectsWithErrors -> add($object)
}
}
foreach($modifiedObjects as &$object)
{
if ($object['validate']($object))
{
$object['save']($object);
}
else
{
$objectsWithErrors []= $object;
}
}
load('user', $userId);
load('category', $categoryId);
load('foo', $fooId);
если дальше раширять приложение, то гораздо уробнее и приятнее расширять его если приложение было грамотно спроектировано
если же подходить к вопросу в процедурном стиле, то я не представляю как реализовать это.
Не представляете? Наверное, мало работали в процедурном стиле?
Хорошего способа — нет. Т.е. можно сделать ООП код без ООП конструкций языка (суть ООП не в ключевых словах, а в полиморфизме, наследовании), но с ними проще и понятнее.
// Этот код выполнится, но когда где-нибудь потом всплывет ошибка, будет очень тяжело её локализовать
$user['age'] = -5;
// А вот этот код может отреагировать на неверное значение: ассертом, исключением, кодом возврата или же просто не изменив состояние объекта.
$user->setAge(-5);
$collection = new Collection;
$collection[] = $item1;
$collection[] = $item2;
$collection->doSomethingWithAllItems();
— где еще такое возможно?load('user', $userId);
load('category', $categoryId);
load('foo', $fooId);
иногда программист может некорректно обрабатывать исключения и коды ошибок — например, падать вместо попытки исправиться.
if ($user->isGuest) $user->register($user->email, $user->name);
Притча о программистах и кодерах