symfony2在编程语言智商加入了全新的机制,这些机制能够为许多特定的目标自动分享一些开发模式一个框架结构同样为编码增加了结构,并且促使程序员变出更好、更易读并且具有联系行的代码。如果用户使用PHP开发网站,但是却又觉得代码太过复杂麻烦,那么有了这款symfony2的框架能够让用户的代码更加容易编写和读取,有需要的用户不要错过哦。
symfony2框架特色
简单的模板功能缓存管理
自定义URLs
搭建了一些基础模块
多语言与I18N支持
采用对象模型与MVC分离
Ajax支持
适用于企业应用开发。
symfony2框架内容
新机制一个框架结构在编程语言之上加入了新的机制,并且这些机制能够为许多特定的目标自动分享一些开发模式。一个框架结构同样为编码增加了结构,并且促使程序员编出更好、更易读的、有持续性的代码。一个框架结构能让编程变得更加简单,因为它把复杂的程序封装成了简明的陈述。
一个框架的发展通常是以它所使用的语言所延伸出来的。一个php5框架是由一系列的用php5写成的文件组成的。
层次
一个框架将为应用划分出层次。从整体上来说,它可以将应用分为三个层次:
◆表现逻辑层(presentation logic) 用于处理用户与软件之间的交互
◆数据源逻辑层(data source logic) 分享了一个数据库同其他数据分享者的联系通道。
◆范围逻辑层(domain logic),或者叫事务逻辑层(business logic),这是剩余的部分。它包括关于输入的计算、处理表现层中的数据,以及根据从表现层收到的指令分派调度数据源逻辑层。
网络应用框架
网络应用框架致力于促进网络应用的开发(websites,intranets,等等)。建立一个基本的动态网站可以从现有的编程语言中轻易的实现,而PHP的知名就是由于它的简易性被广泛的应用。只需要php,你就可以查询数据库、管理会话(session,cookies)、访问服务器端文件等等。而当你需要构建一个更加复杂的站点,当事务逻辑大大的增加了用于维护的编码量的时候,你就需要一个网络应用的框架出现了。
symfony2优点
无论你是一个php5的专家还是一个在网络应用编程方面的新手都没有问题,影响你决定的最主要因素是你项目的大小。如果你只是想要开发一个简易的5-10页的站点,只需要有限的访问数据库和几乎不考虑性能、可用性或文档,那么你只需要单独使用PHP。你将不会从网络应用的框架结构的特征中获的太多的益处,使用面向对象或MVC模式只会使你的开发变慢。Symfony运行在一个只有CGI支持的共享主机上将不会高效优异的运行。
另一方面,如果你开发大型的web应用,其中有大量的事务逻辑,那么单独使用PHP是不够的。如果你计划将来维护和扩展你的应用,你需要编写轻量级、易读的和高性能的的代码。如果你想直接使用最友好的用户交互界面(AJAX),你不能只写上数百行的Javascrīpt代码。如果你想享受并且快速的开发,那么单独使用PHP将是令人失望的。介于上述这些原因,symfony非常适合你。
当然,如果你是一个专业的web开发人员,你已经知道了web应用框架的所有优点,并且你需要一个成熟的,具有详细文档和一个大的团体支持。那么不要再犹豫,symfony就是你的解决方案。
symfony2特性
所包涵的观念它是基于以下的一些观念的:
*尽可能的兼容更多的开发环境
*易于安装和配置
*简单易学
*企业级应用
*规定而非配置,支持回调
*在大多数情况下简洁明了,但是有足够的弹性为复杂情况做准备
*包含大多数网站的共性
*适应大多数 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)
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一个文件输出遇到的错误
下载体验