从合并文件创建MVC结构)

时间:2014-09-08 18:12:43

标签: php xml xslt

我创建了一个Web应用程序,它充当特定表单输入的信息库。让我们说如果想要存储地理位置,那么我在应用程序中创建以下结构以便管理它:

  1. 创建数据库表以存储地理位置
  2. 创建代表此表的模型(我使用Doctrine2作为ORM)
  3. 创建一个控制器来管理和验证用户在浏览器中输入的数据
  4. 使用包含"纬度"的html表单创建视图和经度"输入。
  5. 关于模型表示,其结构映射在xml和php对象中,如下所示:

    PHP类:

    namespace models;
    
    class Geolocation{
    
        protected $id;
        protected $latitude;
        protected $longitude;
    
        public function __construct($latitude, $longitude)
        {
            $this->latitude = $latitude;
            $this->longitude = $longitude;
        }
    }
    

    XML对象图:

    <?xml version="1.0" encoding="UTF-8"?>
    <doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
                          http://www.doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
    
    <entity name="models\Geolocation" table="geolocation">
    
    
        <id name="id" type="integer" column="id_geolocation">
            <generator strategy="AUTO" />
        </id>
    
        <field name="latitude" column="latitude" type="integer" nullable="false"/>
        <field name="longitude" column="longitude" type="integer" nullable="false"/>
    
    
    </entity>
    

    上面的结构只是应用程序中的一个实体,有&#34;人&#34;,&#34;宠物&#34;,&#34;水果&#34;等等。直到现在一直都是我可以轻松地手动创建每个组件(模型,表,视图,控制器),因为应用程序增长流程相对较慢。今天我醒来了,因为应用程序越来越大,我需要创建大量的新存储库。

    所以,我正在考虑创建一个新的应用程序,它可以从像XML这样的整合文件中动态创建所有这些元素。然后,应用一些XSLT和/或php逻辑,以生成模型,视图,表,以及为什么不是控制器。也许是这样的:

    <repository>
        <name>Geolocation</name>
        <table>geolocation_table</table>
        <fields>
            <field name="latitude" column="latitude" type="integer" nullable="false" input="text" style="text-large">
                <rules>required, integer</rules>
            </field>
            <field name="longitude" column="longitude" type="integer" nullable="false" input="text" style="text-large">
                <rules>required, integer</rules>
            </field>
        </fields>
    </repository>
    

    但是在开始这个新的挑战之前,我想知道是否存在可以重现类似的存在和应用程序。我知道这种关注听起来像是一切 - 一切 - 本身&#34;是的,但我真正想要避免的是重新发明温水。如果没有,好的,如果有必要,我会从头开始创建它。

    仅供参考,我使用这些工具:

    • Laravel 4:控制器和视图
    • 学说2:模型和持久性
    • Twitter Bootstrap:在视图中为表单中的html元素设置样式。
    PS:标题太模糊了,请按要求纠正我。

    修改

    看起来我指的是Yii Framework

    中名为Gii的非常相似的模块

0 个答案:

没有答案