Ne kadar ön denetleyicisi refactor?

1 Cevap php

Ben soruları sayfaları bir dizi kullanıcıya göndermek için bir ön denetleyicisi kullanıyorum. Hemen hemen her şeyi sayfalarında, sorular ve her şey yönetici arayüzü kurmak ve veritabanında saklanır gibi dinamik olmalıdır.

Ben bu yüzden onları göndermek için sonraki sayfayı anlamaya oturumda benzersiz bir tanımlayıcı saklanması ve kullanıcı veritabanı üzerinde geçerli sayfayı saklayarak veritabanı üzerinden kullanıcının ilerlemesini takip ediyorum.

Şey kontrol etmek için özel durumlarda bir yeri vardır, olduğunu. Şu anda kontrolör 300 hatları üzerinden uzun ve kod kötü yazılmış ve ben bunu yazdım biriyim. Artı, ben böyle bir kullanıcı tarafından oluşturulan içerik ve kullanıcı nereden geldiğini bağlı olarak göstermek için farklı sayfalar olarak önümüzdeki haftalarda bu sisteme çok daha eklemek gerekiyor gidiyorum.

Ben bu denetleyici ben iyi organize etmezseniz hızlı büyük bir karmaşa olmaya devam ettiğini görebilirsiniz.

Bu refactor bazı iyi yolları veya fikirleri nelerdir?

1 Cevap

Genellikle size müşteri göndermek gerektiğini belirlemek için URL'leri kullanmak daha kolaydır. Lütfen sorular yoluyla gönderilen iseniz cevabı kaydettikten sonra <form> Eğer bir sonraki soruya bir yönlendirme dönebilirsiniz. Bu sorulardan biriydi Örneğin:

<form action="/questions/14" method="post">...

Bu /questions/14 teslim olacağını ve cevap kaydettiğiniz kez 15 sorgulamaya yönlendirebilir:

header('Location: /questions/15');
exit;

Eğer bir yerde URL'leri sahip olduktan sonra her soru için ilgili bölüme, ön denetleyicisi ayırabilirsiniz. Sonra gereken bazı yönlendirme olduğunu:

if(preg_match('/\/questions\/([0-9]+)/',$_SERVER['REQUEST_URI'],$matches) > 0) 
{
    $question_num = (int)$matches[1];
    if(!in_array($question_num, $valid_questions)) {
        // return 404
    }

    $controller_name = 'Question_' . $question_num;
    return new $controller_name; 
} 
else // check for urls that aren't questions ...