Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Оптимизация кода на php (https://javascript.ru/forum/server/48647-optimizaciya-koda-na-php.html)

Duda.Ml1986@gmail.com 11.07.2014 11:22

Оптимизация кода на php
 
Всем привет, возможно из темы не все становится ясно, ниже постараюсь устранить всякую двойственность.

В общем есть код который разбивает урл на части а позже к полученным частям загружает из бд соответствующие записи

$urlParse = explode("/",$_SERVER['REQUEST_URI']);
        $urlLenght = count($urlParse);
switch($urlLenght){
            case 4:
                $this->index = $urlParse[1];
                $this->category = $urlParse[2];
                $this->subCategory = $urlParse[3];
                $this->indexMenupoint = $this->M_Menu->getMenupointByIndex($this->index);
                $this->categoryMenupoint = $this->M_Menu->getMenupointByIndex($this->category);
                $this->subCategoryMenupoint = $this->M_Menu->getMenupointByIndex($this->subCategory);
                break;
            case 3:
                $this->index = $urlParse[1];
                $this->category = $urlParse[2];
                $this->indexMenupoint = $this->M_Menu->getMenupointByIndex($this->index);
                $this->categoryMenupoint = $this->M_Menu->getMenupointByIndex($this->category);
                break;
            case 2:
                $this->index = $urlParse[1];
                $this->indexMenupoint = $this->M_Menu->getMenupointByIndex($this->index);
                break;
            }


Как видите масса повторений ненужных, ожидаю любых предложений как можно это сократить и сделать более лаконичным. Спасибо.

Vlasenko Fedor 15.07.2014 22:42

$urlParse = explode("/", $_SERVER['REQUEST_URI']);
$urlLenght = count($urlParse);

if (urlLenght >= 2):
    $this->index = $urlParse[1];
    $this->indexMenupoint = $this->M_Menu->getMenupointByIndex($this->index);
    if (urlLenght >= 3):
        $this->category = $urlParse[2];
        $this->categoryMenupoint = $this->M_Menu->getMenupointByIndex($this->category);
        if (urlLenght >= 4):
            $this->subCategory = $urlParse[3];
            $this->subCategoryMenupoint = $this->M_Menu->getMenupointByIndex($this->subCategory);
        endif;
    endif;
endif;


Часовой пояс GMT +3, время: 15:49.