SiZE
Новичок
PHP:
class A {
/**
* That function do nothing
* @return void
*/
function foo(){
}
}
class B extends A {
/**
* That function do nothing
* @return void
*/
function foo(){
}
}
class A {
/**
* That function do nothing
* @return void
*/
function foo(){
}
}
class B extends A {
/**
* That function do nothing
* @return void
*/
function foo(){
}
}
Согласен.Если уж подходить совсем правильно с точки зрения ООП — наружное поведение метода не должно меняться в наследниках.
Щито?рефакторинг - тупая эксусплуатация
нужныПо итогу то чо? =)
По-моему, я замечательно ответил тут: http://phpclub.ru/talk/threads/Нужны-ли-комментарии-для-наследуемых-методов.76595/#post-689213По итогу то чо? =)
Только по этому ???? Спешу вас удивить, 99% тех кто считали его "говном" даже не знали что такое ООП ))) Просто тогда другие времена были.."Не до ООП язык" типа Visual Basic, считался полным говном в сравнении с Delphi, только из-за того что в нем просто не было вобще наследования как такогого.
<?php
namespace Application\Block;
abstract class AbstractBlock
{
private $controller;
public function __construct($controller)
{
$this->controller = $controller;
}
public function getController()
{
return $this->controller;
}
}
<?php
namespace Application\Block;
use Application\Block\AbstractBlock;
use Zend\View\Model\ViewModel;
class CategoryListBlock extends AbstractBlock
{
public function render($category_id = 0)
{
$categoryManager = $this->getController()->getServiceLocator()->get('Application\EntityManager\Category');
if ($list = $categoryManager->getListByParentId($category_id)) {
foreach ($list as &$item) {
$item['sublist'] = $categoryManager->getListByParentId($item['id'], 0, 7);
}
}
$view = new ViewModel(array('list' => $list));
$view->setTemplate('application/block/category-list');
return $view;
}
}
<?php
namespace Application\Controller;
use Application\Block\NavBarBlock;
use Application\Block\NavMenuBlock;
use Application\Block\CategoryListBlock;
use Application\Block\CategoryListSidebarBlock;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class CategoryController extends AbstractActionController
{
public function indexAction()
{
$blockNavBar = new NavBarBlock($this);
$blockNavMenu = new NavMenuBlock($this);
$blockCategoryList = new CategoryListBlock($this);
$blockCategoryListSidebar = new CategoryListSidebarBlock($this);
$view = new ViewModel();
$view->addChild($blockNavBar->render(), 'blockNavBar');
$view->addChild($blockNavMenu->render(), 'blockNavMenu');
$view->addChild($blockCategoryList->render($this->params('id')), 'blockCategoryList');
$view->addChild($blockCategoryListSidebar->render($this->params('id')), 'blockCategoryListSidebar');
return $view;
}
}