2009-08-03 9 views
0

私はCakePHPのモデルバリデーションによって部分的に触発されましたが、別のデータベーススキーマファイルを使用するプロジェクトを作成しました。私はCakePHPでモデルファイルとdbスキーマが同じPHPファイルで結合されていることを気に入らなかった。私は彼らを別々にするのが好きです。MVCプロジェクトにDBスキーマ検証を使用する人は誰ですか?

このスキーマでは、すべてのSQLの更新、挿入、および削除が最初に渡されます。この検証を自動的に行うupdate()insert()delete()関数を書きました。

なぜですか?なぜなら私は訪問者からの投稿を受け入れ、チェックしなくてもチェックされていないデータを自分のデータベースに送るからです。私のスキーマは無害で無邪気でない違反のフィルタリングを行います。ここで

は、データベース・スキーマの例です。このような何かをやって、他の

<?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'), 
), 
); 
?> 

誰ですか?

答えて

1

私は本当に質問を理解していませんが、DB、検証、スキーマ、PHPについては、DoctrineというORMフレームワークが本当に好きです。

(これはところで、PHPフレームワークsymfonyのデフォルトのORMのスタックです。しかし、他のフレームワークと非常に簡単に統合することができます - 私は、例えば、Zend Frameworkのとそれを既に使用しました)

それはウェブサイトです(彼らはいくつかの高負荷関連の問題を実験してきましたが、最後の週はですが、スキーマを記述するYAMLファイルに基づいて、データの検証を行うためのクラス/メソッドを提供しています。 DBにデータを挿入する。

あなたはそれを見てみたいかもしれません...

+0

ドクトリンは私が書いたものと非常に似ています。ヘッドアップをありがとう。 – anarkhos

関連する問題