我目前正在重建一项行政申请,并寻求你们关于最佳做法的建议! 如果我没有正确的术语,那么我会怎样做?
举例来说,“用户”——通常我们能够创建一类具有诸如名称、用户名称、密码等特性的类别,并采用诸如<代码>、(用户_$)、getAllUsers(
等一些方法。 最后,我们最后以一系列/指令的形式,如:array(名称=>Joe Blaggs,用户名称=>joe_90 ,密码=>123456 等)
。
问题是,我希望这个目标能够更多地了解其每一种特性。
考虑“用户名称”——除了知道其价值外,我还要知道物体;在形式上,什么文字标签应当显示控制,在确认时,我应当使用什么文字标签? 这些事情似乎属于这一模式。
我在这个问题上越多,我就越看其他事情;应当利用哪些超文本元素来显示这种财产,登记等财产的最低/最高价值是什么?
我设想这一类研究(简化):
class User {
...etc...
private static $model = array();
...etc...
function __construct(){
...etc...
$this->model[ username ][ value ] = NULL; // A default value used for new objects.
$this->model[ username ][ label ] = dictionary::lookup( username ); // Displayed on the HTML form. Actual string comes from a translation database.
$this->model[ username ][ regex ] = /^[0-9a-z_]{4,64}$/i ; // Used for both client-side validation and backend validation/sanitising;
$this->model[ username ][ HTML ] = text ; // Which type of HTML control should be used to interact with this property.
...etc...
$this->model[ registration_date ][ value ] = now ; // Default value
$this->model[ registration_date ][ label ] = dictionary::lookup( registration_date );
$this->model[ registration_date ][ minimum ] = 2007-06-05 ; // These values could be set by a permissions/override object.
$this->model[ registration_date ][ maximum ] = +1 week ;
$this->model[ registration_date ][ HTML ] = datepicker ;
...etc...
}
...etc...
function getUser($user_ID){
...etc...
// getUser pulls the real data from the database and overwrites the default value for that property.
return $this->model;
}
}
基本上,我希望这一信息出现在一个地点,以便我不必重复超文本标记、验证例行等编码。 想法是,我可将一个用户阵列作为超文本的助手,并自动形成形式、控制和 Java本验证。
然后,我可在后面加上一个通用的<代码>(元数据=阵列)、模仿 =阵列()代码>方法,以避免采用诸如<代码>查询名称(用户名称)代码>、<代码>查询登记(日期)<代码>等个别方法。
- Does this seem like a sensible approach?
- What would you call value, label, regex, etc? Properties of properties? Attributes?
- Using
$this->model
ingetUser()
means that the object model is overwritten, whereas it would be nicer to keep the model as a prototype and havegetUser()
inherit the properties. - Am I missing some industry-standard way of doing this? (I have been through all the frameworks - example models are always lacking!!!)
- How does it scale when, for example, I want to display user types with a SELECT with values from another model?
感谢!
我从此获悉, Java有班次说明——。 - 这似乎比我的要求多或少。 我发现这一员额——http://interfacelab.com/metadataattributes-in-php'rel=“nofollow noreferer” http://interfacelab.com/metadataattributes-in-php。 - 没有人对方案拟定有这样的见解?