symfony3是一款开源的php web框架,基于最佳web开发时间,可以加快web应用的创建和维护。具有ajax支持、多语言与I18N支持、搭建基础模块的特点,新版本采用了全新的机制,帮助用户更容易进行代码编写和读取,需要的朋友赶快下载吧!
软件特色
Ajax支持
缓存管理
自定义URLs
简单的模板功能
多语言与I18N支持
搭建了一些基础模块
采用对象模型与MVC分离
软件特性
所包涵的观念
它是基于以下的一些观念的:
*尽可能的兼容更多的开发环境
*易于安装和配置
*简单易学
*企业级应用
*规定而非配置,支持回调
*在大多数情况下简洁明了,但是有足够的弹性为复杂情况做准备
*包含大多数网站的共性
*适应大多数 web “最佳实践(best practices)” 和 web “设计模式(design patterns)”
*非常易读的代码、轻松维护
*开源
这些主要的基本概念突出了symfony的框架是使更多的公共任务自动完成,以使开发人员能够完全专注于一项应用任务的特殊细节所在。而在每次一个新的web应用建立的时候不需要重新反复劳动。
兼容的数据库
为了实现这些需求,symfony完全由PHP5写成。它已经彻底的在各种现实项目应用中被测试过,并且实际上已经应用于一些高要求的电子商务网站。它可以同大多数现有的数据库兼容,具体如下:
*MySQL
*PostgreSQL
*Oracle
*MSSQL
*和其他数据库(如果安装了Creole驱动)
结构
symfony的对象模型依赖于以下三个独立的层:
*数据库抽象层(a database abstraction)
*对象关系映射层(an object-relational mapping)
*用于负责前台显示和后台事务的 模型-视图-控制器 模式层(a Model-View-Controller model for the front and back-office)
开发环境和捆绑
另外为了满足企业已有的编码规范和项目管理规则,symfony可以全部重新用YAML配置文件。它是默认提供的几个开发环境,和捆绑:
*原型(prototyping)
*内容管理(content management)
*live configuration changes
*部署(deployment)
*单元测试(unit testing)
*应用测试(applicative testing)
*日志记录(logging)
*调试(debugging)
应用开源项目
Symfony用到了其他一些开源项目的代码:
*Creole, 用于数据库抽象层(for the database abstraction layer)
*Propel, 用于对象关系映射层(for the object-relational mapping layer)
*Mojavi, 用于MVC模型层(for the Model-View-Controller model layer)
web项目的公共特性
web项目的公共特性可以轻易的由symfony自动得到:
*国际化(internationalization)
*模板和助手(templating with helpers)
*表单确认(form validation)
*缓存管理(cache management)
*购物车管理(shopping cart management)
*简洁的路径(smart URLs)
*scaffolding
*发送邮件(email sending)
*分页(Pagination)
*AJAX交互(AJAX interactions)
symfony3框架内容
新机制
一个框架结构在编程语言之上加入了新的机制,并且这些机制能够为许多特定的目标自动提供一些开发模式。一个框架结构同样为编码增加了结构,并且促使程序员编出更好、更易读的、有持续性的代码。一个框架结构能让编程变得更加简单,因为它把复杂的程序封装成了简明的陈述。
一个框架的发展通常是以它所使用的语言所延伸出来的。一个php5框架是由一系列的用php5写成的文件组成的。
层次
一个框架将为应用划分出层次。从整体上来说,它可以将应用分为三个层次:
◆表现逻辑层(presentation logic) 用于处理用户与软件之间的交互
◆数据源逻辑层(data source logic) 提供了一个数据库同其他数据提供者的联系通道。
◆范围逻辑层(domain logic),或者叫事务逻辑层(business logic),这是剩余的部分。它包括关于输入的计算、处理表现层中的数据,以及根据从表现层收到的指令分派调度数据源逻辑层。
网络应用框架
网络应用框架致力于促进网络应用的开发(websites,intranets,等等)。建立一个基本的动态网站可以从现有的编程语言中轻易的实现,而PHP的知名就是由于它的简易性被广泛的应用。只需要php,你就可以查询数据库、管理会话(session,cookies)、访问服务器端文件等等。而当你需要构建一个更加复杂的站点,当事务逻辑大大的增加了用于维护的编码量的时候,你就需要一个网络应用的框架出现了。
symfony命令行详解
输入php app/console
就可以进入console控制台
选项:
--help -h 显示本帮助信息
--quiet -q 不输出任何信息
--verbose -v 增加信息的详细程度
--version -V 显示本程序的版本号
--ansi 强制ANSI输出
--no-ansi 禁止ANSI输出
--no-interaction -n 不进行任何交互问题的询问
--shell -s 启动shell
--process-isolation 用shell作为一个单独的进程启动命令
--env -e 环境名
--no-debug 关闭调试模式
可用的命令:
Available commands:
help 显示命令的帮助信息
list 命令列表
assetic
assetic:dump 将所有asset保存到文件系统。
assets
assets:install 在公用网站目录中安装各Bundle网站的asset。
cache
cache:clear 清除缓存
cache:warmup Warms up一个空的缓存
config
config:debug 将当前配置扩展
config:dump-reference 将默认配置扩展
container
container:debug 为应用程序显示当前服务
debug
debug:config 将当前配置的扩展
debug:container 显示应用程序的当前服务
debug:event-dispatcher 显示应用程序的配置监听器
debug:router 显示应用程序的当前路径
debug:swiftmailer 显示应用程序的当前邮件
debug:translation 显示消息信息的翻译
debug:twig 列表显示Twig的功能,过滤器,全局变量和测试
doctrine
doctrine:cache:clear-metadata 为一个实体管理器清除所有的元数据缓存。
doctrine:cache:clear-query 为一个实体管理器清除所有的查询缓存
doctrine:cache:clear-result 为一个实体管理器清除结果缓存
doctrine:database:create 创建一个已配置的数据库
doctrine:database:drop 删除一个已配置的数据库
doctrine:ensure-production-settings 确认在生产环境下Doctrine的配置是正确的
doctrine:generate:crud 基于Doctrine实体生成增删改查(CRUD)
doctrine:generate:entities 从您的映射信息中生成实体类和方法的存根
doctrine:generate:entity 生成Bundle中的新Doctrine实体
doctrine:generate:form 基于Doctrine实体生成一个表单类型类
doctrine:mapping:convert 在支持的格式间转换映射信息
doctrine:mapping:import 从已存在的数据库中导入映射信息
doctrine:mapping:info 显示所有被映射实体的基本信息
doctrine:query:dql 直接从命令行中运行任何的DQL
doctrine:query:sql 直接从命令行中运行任何的SQL
doctrine:schema:create 执行(或转储)生成数据库方案所需的SQL语句
doctrine:schema:drop 执行(或转储)删除数据库方案所需的SQL语句
doctrine:schema:update 执行(或转储)更新匹配当前映射元数据数据库方案所需的SQL语句
generate
generate:bundle 生成Bundle
generate:controller 生成一个控制器
generate:doctrine:crud 基于Doctrine实体生成CRUD
generate:doctrine:entities 从您的映射信息中生成实体类和方法的存根
generate:doctrine:entity 在Bundle中生成一个Doctrine的新实体
generate:doctrine:form 基于Doctrine实体生成一个表单类型类
init
init:acl 在数据库中安装ACL数据表
orm
orm:convert:mapping 转换支持格式之间的映射信息
router
router:debug 为应用程序显示当前路由
router:dump-apache 将所有路由转储为Apache重写规则
security
security:check 检查你的项目依赖项的安全问题
server
server:run 运行PHP内置的Web服务器
server:start 在后台开始PHP内置的Web服务器
server:status 输出给定地址的内置Web服务器的状态
server:stop 从服务器的启动命令停止PHP内置的Web服务器
swiftmailer
swiftmailer:debug 显示应用程序的当前邮件
swiftmailer:email:send 简单的邮件发送
swiftmailer:spool:send 从池中发送电子邮件
translation
translation:debug 显示消息信息的翻译
translation:update 更新翻译文件
twig
twig:debug 列表显示Twig的功能,过滤器,全局变量和测试
twig:lint lint一个模板输出遇到的错误
yaml
yaml:lint lint一个文件输出遇到的错误