MVC projeleri için DB-Şema-Doğrulama kullanarak başkasının?

1 Cevap php

Tamam, CakePHP'nin Model Doğrulama kısmen ben ayrı bir veritabanı şema dosyası kullanan bir proje yarattı ilham. Ben CakePHP'de model dosyası gibi değildi ve db-şema aynı php dosyasında birleştirilir. Onları ayrı olması gibi.

Benim sql güncellemeleri, ekler ve siler tüm ilk bu şema tarafından geçirilir. Ben otomatik olarak bu doğrulama yapmak için () takın () (silme) fonksiyonlarının güncelleştirme yazdı.

Neden? Ben bir ziyaretçinin bir yazı kabul etmek ve onu kontrol etmek zorunda kalmadan benim veritabanına un-kontrol veri gönderebilirsiniz çünkü. Benim şema masum ve o kadar masum değil ihlalleri için filtreler.

İşte bir veritabanı şeması bir örnektir:

<?php
$schemas    = array('database_name_hidden'=>array(
'assigned_weeks'=>array(
    'id'=>array('id'),
    'user_id'=>array('foreign_id','users'),
    'week_number'=>array('posint'),
    'year'=>array('posint'),
    'unit_id'=>array('foreign_id','units'),
    'claim_listing'=>array('posint'),
    'created'=>array('created'),
    'modified'=>array('modified'),
    'resort_id'=>array('foreign_id','resorts','required'),
),

'trade_listings'=>array(
    'id'=>array('id'),
    'assigned_week_id'=>array('foreign_id', 'assigned_weeks','required'),
    'listing_assigned_week_id'=>array('foreign_id', 'assigned_weeks'),
    'opposite_id'=>array('numeric'),
    'listed'=>array('bool'),
    'prev_id'=>array('foreign_id','trade_listings'),
    'next_id'=>array('foreign_id','trade_listings'),
    'listing_email'=>array('email'),
    'listing_description'=>array('text'),
    'trade_confirmation_number'=>array('text'),
    'external_resort_id'=>array('foreign_id','resorts'),
    'external_unit_number'=>array('text','size'=>array(1,6)),
    'external_start_time'=>array('time_future',),
    'external_end_time'=>array('time_future'),
    'admin_comment'=>array('text'),
    'comment'=>array('text'),
    'created'=>array('created'),
    'creator'=>array('creator'),
    'modified'=>array('modified'),
    'modifier'=>array('modifier'),
    'resort_id'=>array('foreign_id','resorts','required'),
),
);
?>

Başkasının böyle bir şey yapıyor?

1 Cevap

Ben gerçekten soruyu anlamak emin değilim, ama ben Doctrine denilen ORM Framework gibi, gerçekten, DB, Validasyon, Şema ve PHP hakkında konuşma.

(It's the default ORM stack of the PHP Framework symfony, btw; ancak diğer çerçeveler ile oldukça kolayca entegre edilebilir - Ben zaten örneğin, Zend Framework ile kullandım)

Bu web sitesi var şu anda aşağı (they've been experimenting some high-load-related troubles, those last weeks) gibi görünüyor, ama DB veri takmadan önce, şema açıklayan YAML dosyaları dayalı, veri doğrulama yapmak için sınıfları / yöntem sağlar.

Bunu bakmak isteyebilirsiniz ...