PHP MySQL nasıl bu kodu düzenlemek için?

0 Cevap php

Ben bu kodu (sadece bazı kod kesmek için kaçan kaldırıldı param) var:

private function _get_tag_id($value)
{
    $sql = "INSERT INTO tags (tag, added) VALUES ('$value', ".time().") "
         . "ON DUPLICATE KEY UPDATE tag_id = tag_id";
    $id = execute($sql);

    if (empty($id))
    {
        $sql = "SELECT tag_id FROM tags WHERE tag = '$value'";
        $id = execute($sql);
    }

    return $id;
}

Benim kod düzenleme gerçekten kötüyüm ve ben kod KURU tutmanın önemi hakkında okuma oldum. Bu aklınıza gelebilecek herhangi bir sorgu içerir? Örneğin, ben bir kaç alanlar için bu aynı sorguları gerçekleştirmek gerekiyor ve ne yaptık bu değiştirmek ise:

private function _get_field_id($field, $value)
{
    $sql = "INSERT INTO {$field}s ({$field}, added) VALUES ('$value', ".time().") "
         . "ON DUPLICATE KEY UPDATE {$field}_id = {$field}_id";
    $id = execute($sql);

    if (empty($id))
    {
        $sql = "SELECT {$field}_id FROM {$field}s WHERE {$field} = '$value'";
        $id = execute($sql);
    }

    return $id;
}

Bazı benzer fonksiyonları azaltır rağmen, aynı zamanda ilk okumak için sorgu çok zor hale getirir. Bu yaptıktan sonra başka bir sorun bazen sorgu alanı için biraz farklı olabilir ne olur nedir? Kullanıcının alan etiketi ise, ben bir daha ekledi sütunu gerekmez ve belki sorgu şimdi değiştirmek istiyorsunuz diyelim:

$sql = "INSERT INTO {$field}s ({$field}".($field == 'tag' ? '' : ", added").") "
     . "VALUES ('$value', ".($field == 'tag' ? '' : time()).") "
     . "ON DUPLICATE KEY UPDATE {$field}_id = {$field}_id";

Şimdi ekstra dağınık almaya başlıyor, ama insanlar aslında bunu yapmam bir his var.

Ben okudum başka bir şey fonksiyonları tek bir şey yapmanız gerektiğidir. Yani böyle bu fonksiyonu kesecekti?

private function _get_tag_id($value)
{
    $id = $this->_add_tag_id($value);

    if (empty($id))
    {
        $id = $this->_get_tag_id($value);
    }

    return $id;
}

Yoksa bunu daha önce olduğu şekilde bırakmak için daha iyi olurdu?

Sizce yoksa ben kod düzenleme denedim yollardan ya doğru da bunu yaparım yol önermek çekinmeyin, ya başka bir deyişle hangi kod bu basit bit düzenlemek için en iyi yolu olurdu?

0 Cevap