• symfony框架简单流程


    1建立一个专案目录    symfony init-project 专案名

    2创建一个程式        init-app 程式名

    3创建一个模块框架    init-module 程式名 模块名 (需手动添加动作和摸版)

    3设置虚拟主机


    <VirtualHost 127.0.0.1>
        ServerAdmin website1@domain
        DocumentRoot "C:\www/danfei/web"
        ServerName www.danfei.com
        ErrorLog logs/www.sandbox.com-error_log
        CustomLog logs/www.sandbox.com_log common
        Alias /sf "C:\program files/php/PEAR/pear/data/symfony/web/sf"
        <Directory "C:\www/danfei/web">
          AllowOverride All
          Order deny,allow
          Allow from all
        </Directory>
    </VirtualHost>
    <Directory "C:\program files/php/PEAR/pear/data/symfony/web/sf">
          AllowOverride All
          Order deny,allow
          Allow from all
    </Directory>


    5数据库连接结构    databases.yml

    连接数据库的配置文件
    修改config/databases.yml,其param:下的参数部分分别为:
    phptype:    要使用的数据库类型
    hostspec:    要用的数据库所在的域名
    database:    要使用的数据库的名字
    username:    连接数据库所用的用户名
    password:    连接数据库所用的密码

    2 修改config/propel.ini,所需要修改的部分如下:
    propel.database:                需要使用的数据库类型
    propel.database.createUrl:            需要使用的数据库所在的主机地址,其格式为mysql://username:password@domain/,分别为用户名,密码以及域名
    propel.database.url:                需要使用的数据库的地址,其格式为:mysql://username:password@domain/database,分别为用户名,密码以及数据库的名字


    all:
      propel:
        class:          sfPropelDatabase
        param:
        phptype:      mysql
        host:         localhost
        database:     danfei
        username:     root
        password:     root

      
    6数据表模结构    schema.yml

    propel:
      question:
        _attributes: { phpName: Question }
        id:          
        user_id:     { type: integer, foreignTable: user, foreignReference: id  }
        title:       { type: longvarchar, required: true }
        body:        { type: longvarchar, required: true }
        created_at: 
        updated_at:
      answer:
        _attributes: { phpName: Answer }
        id:          
        question_id: { type: integer, foreignTable: question, foreignReference: id  }
        user_id:     { type: integer, foreignTable: user, foreignReference: id  }
        body:        { type: longvarchar }
        created_at:
      user:
          _attributes: { phpName: User }
          id:          
          nickname:    { type: varchar(50), required: true, index: true }
          first_name:  { type:varchar(100) }
          last_name:   { type:varchar(100) }
          created_at:
      interest:
          _attributes: { phpName: Interest }
          question_id: { type: integer, foreignTable: question, foreignReference: id }
          user_id:     { type: integer, foreignTable: user, foreignReference: id }
          created_at:  
      relevancy:
          _attributes: { phpName: Relevancy }
          answer_id:   { type: integer, foreignTable: answer, foreignReference: id }
          user_id:     { type: integer, foreignTable: user, foreignReference: id }
          score:       { type: integer }
          created_at:  

    7物件模型建立    propel-build-model

    8数据SQL生成    propel-build-sql

    9数据表插入    propel-insert-sql

    10动作程式框架生成    propel-generate-crud front question Question(自动生成一个默认的动作和摸版)

    11外观界面    apps/frontend/templates/layout.php

    12页面修改与CSS加载    frontend/config/view.yml 

    13清除缓存    symfony cc

    14重制定默认主页    apps/frontend/config/routing.yml     homepage:

    15动作数据传递模版    apps/frontend/modules/程式/actions/actions.class.php

    16表单验证
    methods:
       post:           [author, email, body]
       get:            [author, email, body]
       
    fillin:
       enabled:        on

    names:
       author:         
          required:       Yes
          required_msg:   作者不能为空

       email:
          required:       No
          validators:     emailValidator
       
       body:              
          required:       No
          validators:     emailValidator
          
    emailValidator:
       class:             sfEmailValidator
       param:
          email_error:    电子邮件地址不正确       

    17动作页面        Action结尾    摸版页面    Success结尾

    18由一个CRUD生成器创建的动作列表如下:

    名字        描述
    list        显示一个数据表的所有记录
    index       转向到list
    show        显示一个指定记录的所有数据域
    edit        显示一个表单来创建一个新的记录或是编辑一个已存在的记录
    update      通过在请求中指定的参数来修改一个记录,然后转向到show
    delete      从数据表中删除一个指定的记录

    19数据导入
    在askeet/data/fixtures/下创建新test data file(你需要手动创建目录)
    在askeet/batch/下建立一个文件load_data.php:
    define('SF_ROOT_DIR', realpath(dirname(__FILE__).'/..'));
    define('SF_APP', 'frontend');
    define('SF_ENVIRONMENT', 'dev');
    define('SF_DEBUG', true);
    require_once(SF_ROOT_DIR.DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.SF_APP.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'config.php');
    $databaseManager = new sfDatabaseManager();
    $databaseManager->initialize();
    $data = new sfPropelData();
    $data->setDeleteCurrentData(false);        //不加此项将在导入时先删除之前的数据
    $data->loadData(sfConfig::get('sf_data_dir').DIRECTORY_SEPARATOR.'fixtures');

    20动作方法的名字总是execute'Xxx'()的形式,其中名字的第二部分是动作的名字,并且第一个字母大写。

    21.app下的setting.yml
       修改apps\frontend\config\settings.yml里的内容参数为off:
       prod:
         .settings:
         no_script_name: off
     
  • 相关阅读:
    在手机浏览器中判断App是否已安装
    用git无法连接github的解决方法
    使用pdf.js显示pdf文件
    Javascript绝句欣赏
    HTTP Keep-Alive模式
    和浏览器并发请求数有关的一些前端技术
    Javascript标准参考教程学习记录
    [nodejs]国内npm安装nodejs modules失败的几个解决方案
    利用sfntly的sfnttool.jar提取中文字体
    Bzoj4378--Poi2015Logistyka
  • 原文地址:https://www.cnblogs.com/kaeloy/p/3415378.html
Copyright © 2020-2023  润新知