位置: 编程技术 - 正文

Symfony学习十分钟入门经典教程

编辑:rootadmin

推荐整理分享Symfony学习十分钟入门经典教程,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

Symfony是一个强大的基于PHP的Web开发框架,在这里我们用十分钟的时间来做一个简单的增删改查的程序, 任何不熟悉Symfony的人都可以通过这个教程完成自己的第一个Symfony程序。

如果需要这个样例程序的全部源代码,可以访问 这里 ,或者通过下面的方式获取源代码:

项目初始化

首先,需要你在自己的电脑中安装PHP环境并安装git.这方面的内容属于基础内容,网络上有大量的教程,在这里就不多介绍了,不过要提示的一点是:PHP从5.4开始, 已经内置了测试用服务器,Symfony也拥抱了这个由PHP内置的服务器,只需要在命令行中使用$php app/console server:run 就可以 启动基于Symfony框架的PHP程序进行测试,因此不必要使用XAMPP这一类复杂的集成环境,直接安装PHP并保证在命令行下可以执行php命令就可以了。

然后,我们需要建立一个新的目录,名字叫symfony-sample,Symfony使用一个叫composer的程序管理各种类库的依赖关系,因此如果你的机器上 安装了composer,就可以直接跳过这一步,如果没有安装,可以用下面的命令安装最新版本的composer.

如果希望了解更多关于composer的信息,可以参考这个网站。

安装完成composer后,我们可以开始安装当前最新版本的Symfony2.6.0

安装过程中,需要填写数据库等信息,在这个例子中,我们会使用mysql数据库,因此你可以一路按回车键,先不要关心这一切配置应该如何填写。反正 Symfony会在安装成功后,生成一个配置文件,叫app/config/parameters.yml,下面我会提供一个parameters.yml文件的 内容样本,只要复制进去就可以了,先不必关注这么多细节。

刚才创建mysampleproject以后,在symfony-sample目录下生成了mysampleproject目录,我习惯于将程序放在项目的根目录下,因此执行下面的几个命令, 就可以把项目从symfony-sample/mysampleproject目录中,移到symfony-sample目录中

理论上来讲,我们已经完成了Symfony项目的创建,不过刚才提到的parameters.yml文件还没有解释。这个parameters.yml是Symfony的全局配置文件, 无论是数据库配置信息还是其他的各种配置,都可以放在这个文件中。下面是我们需要使用的测试用的parameters.yml,记得把最后一行的值修改为一个随机值

直接用这段,替换掉app/config/parameters.yml文件中的内容,然后编辑app/config/config.yml,找到下面几行,把最后一行添加进去并保存。

好了,这样我们就完成了基本的Symfony程序的配置,你现在有了一个配置好了数据库,邮件发送器,日志系统的基本程序原型。下面,我们就开始编写自己的Symfony程序。

建立Bundle

先说一下什么是Bundle。Symfony是以DI为核心的,可能你不知道什么是DI,没关系,这不重要,你可以把Symfony的DI理解成为一个功能池,把程序中的所有功能都做成Bundle,或者你把Bundle理解成一组php文件组合而成的程序就可以。 比如用户注册,登录功能做成一个Bundle,你也可以把一个论坛的发帖回贴功能做成一个Bundle,自然也可以把文章管理做成一个Bundle,然后用一个Bundle去调用和配置不同的Bundle,那么你就可以把网站组装起来了,而你写的各种Bundle,在其他的应用程序中还可以继续复用,这样写的Bundle越多,可复用性就越强,制作新项目的时候也越有利。

我们现在就来建立自己的Bundle.在命令行中,使用命令:

这样就成功建立了我们的Bundle,名字叫SymfonySampleBundle,我们使用的Bundle namespace是Symfony/Bundle/SampleBundle,这是一种约定,我们还可以建立其他的Bundle,比如Symfony/Bundle/PostBundle, 或者Symfony/Bundle/ArticleBundle,而对应的Bundle name就分别是SymfonyPostBundle或者SymfonyArticleBundle。你也可以自己建立这几个Bundle,这并不会影响当前我们的教程。

对了,在我们建立的Bundle中,分别会生成下面几个目录:

① Entity:这个目录并不是必须的,很多情况下只有在生成实体的时候才会生成,放置模型,也就是MVC中的M② Controller:这个目录会生成DefaultController.php,你可以在这里建立自己的Controller控制器,也就是MVC中的C③ Resources:这个目录下面还有子目录,其中views放置的是模板,也就是MVC中的V,而public放置的是静态文件,比如js, css, images等等④ Tests:放置单元测试与集成测试的代码,在这个样例程序中暂时不需要⑤ DependencyInjection:与DI相关的目录,暂时也不需要去了解⑥ SymfonySampleBundle.php:当前这个Bundle的定义文件

更多细节可以去阅读Symfony 的官方文档,而当前的重点是把这个Symfony的样例程序运行起来。

Symfony学习十分钟入门经典教程

设计实体

在MVC的设计理念中,M是最重要的,因为M表达的内容是业务逻辑。我觉得如果这个地方往深入去探讨,会一直探讨到富血模型或者贫血模型,不过目前在这个教程中根本 不需要考虑这么多,你只需要知道实体就是MVC中的M,用于表达业务逻辑。比如说,我们要开发一个文章管理的系统,那么文章本身就代表的业务逻辑。比如,我们的文章要有 标题,内容,作者,那么这三项就属于业务逻辑,而标题不能够为空,不能超过长度,内容不能为空,作者却是可以为空的,这些也属于业务逻辑。同时,这个文章需要被 存储起来,比如存储到数据库中,那么这个M就应该能够映射到数据库的表中。我们把这个M,叫实体。

还是少说废话,直接上代码。那么如何建立实体呢?当然不是从头一点一点地写,而是直接用下面的命令生成:

经过这些命令,你会发现在Entity中建立了新的文件Article.php,代码如下:

你可以一行不改地使用这些代码。这时候我们再来做几个神奇的操作:

这个操作,已经帮助你通过Article.php建立了数据库和数据表,你不需要自己操作这个过程,下面我们还会对Article.php进行改造,而到时候只需要重新 执行上面的这个操作,Symfony会帮助你自动修改数据库的表结构。

添加约束

上面我们创建了Article.php,既然这个实体代表了具体的业务逻辑,因此我们要考虑几个现实的问题:

1. 用户必须填写标题和内容2. 用户填写的标题不能超过个字3. 用户可以不填写作者

这些就属于业务逻辑,而我们可以修改Article.php如下,以增加相应的业务逻辑的约束:

然后执行同步数据库的操作:

增删改查

好了,我们来做一个针对文章的增删改查操作。首先请执行下面的命令:

然后请编辑DefaultController.php中的indexAction如下:

编辑Resource/views/Default/index.html.twig内容如下:

让我们看看神奇的事情,启动内置的测试服务器:

好了,我们已经完成了这十分钟的博客,一切的代码都在Controller/ArticleController.php,Form/ArticleType.php,Resource/views/Article/*.html.twig中,我们已经完成了最基本的文章管理功能。当然在你熟悉Symfony以后,未必需要完全依靠Symfony帮你生成这些增删改查操作,可是起码Symfony用一个命令让一切都先运行起来了,这不就是我们所要的原型吗?

本文永久地址: IT博客 ,转载时请注明出处及相应链接。

更多关于PHP框架相关内容感兴趣的读者可查看本站专题:《php优秀开发框架总结》,《codeigniter入门教程》,《CI(CodeIgniter)框架进阶教程》,《Yii框架入门及常用技巧总结》及《ThinkPHP入门教程》

希望本文所述对大家基于Symfony框架的PHP程序设计有所帮助。

PHP Cookei记录用户历史浏览信息的代码 【基础】Cookie常用方法:$_COOKIE[‘RecordLuHuiDUDU']得到Cookiesetcookie(‘RecordLuHuiDUDU',,time()-**);setcookie(字段名,数据,过期时间);设置Cookie【注意】重新设

网页的分页下标生成代码(PHP后端方法) 测试图例:效果图:实现代码:/****@param$page页码(1至正无穷)*@param$num数据中多上行为一页*@param$rows数据的总行数*@param$length下标的最大长度*@returnarray*/p

Symfony2 session用法实例分析 本文实例分析了Symfony2session用法。分享给大家供大家参考,具体如下:Symfony自带有session的方法,以前老版本2.2及以前的session用法是$session=$this-getRequest()-

标签: Symfony学习十分钟入门经典教程

本文链接地址:https://www.jiuchutong.com/biancheng/288222.html 转载请保留说明!

上一篇:PHP实现长文章分页实例代码(附源码)(php文本分割)

下一篇:PHP Cookei记录用户历史浏览信息的代码(php操作cookie)

  • 企业成立多久能注销
  • 新成立的小规模纳税人怎么报印花税
  • 百旺普通发票作废流程
  • 承兑贴现几个点是月息还是年息
  • 一般纳税人暂估成本的账务处理
  • 结算业务申请书和转账支票区别
  • 按年征收的基金有哪些
  • 应收账款周转率多少合适
  • 个人所得税核定征收计算公式
  • 主营业务税金及附加包括印花税吗
  • 价内税包括
  • 工程款增值税怎么算
  • 主营业务税金及附加怎么算
  • 对公人民币转账、汇款(含退汇)分录
  • 诉讼费和保全费什么时候能退还
  • 进口商品合同
  • 业务宣传费和广告费计入什么科目
  • 月息和年息的换算公式等额本息
  • 申报附加专项扣除
  • 路由器管家怎么登录
  • 公司股权转让会议决议
  • 员工意外伤害保险范围
  • 财政拨款收入是指行政单位从哪里取得的预算资金
  • 银行的财务会计
  • 前端获取post请求返回数据
  • 事业单位在建工程会计账务处理
  • 不带息票据按面值入账
  • 联邦学习(FL)+差分隐私(DP)
  • 【历史上的今天】4 月 7 日:IBM System/360 问世;以太网的发明者诞生;第一个 RFC 文档发布
  • ChatGPT的火爆出圈,你对它有几分了解?
  • dpkg deinstall
  • 增值税普通发票和专用发票有什么区别
  • 因税收取得的票据是什么
  • 差旅费包干是什么意思
  • 分公司需要做纳税申报吗
  • micro start
  • 报验户如何管理
  • 出租车发票可以改时间吗
  • 缴纳以前年度房租的税
  • 非金融企业之间的借款合同要交印花税吗
  • 现金流量表财务费用包括哪些内容
  • 员工工资可以当进项税吗
  • 小规模纳税人国税地税都要交吗
  • 房租能不能一次性付清
  • 如何计提固定资产折旧费
  • 残保金缴纳额计算公式
  • 营业税费是借还是贷
  • 为什么小规模纳税人少
  • 股东之间股权转让的税务处理
  • 领备用金时会计怎么做分录
  • 上月有留底税额时本月缴纳税款时怎么做分录
  • 销售返利的会计处理方法
  • 公章未备案是否不合法
  • 发票作废后对方还能认证吗
  • 冲回以前年度工会费
  • 制造费用不结转成本 报表平吗
  • 用sql语句实现分页效果
  • windows 2003 iis+php5+mysql+phpmyadmin 详细安装配置
  • 传统与现代的结合英文
  • win8.1 升级
  • windows10正式版
  • Win10控制面板在c盘哪里
  • 11月 Win8.1 Update 3更新哪些内容?开始菜单依然没有
  • 文科生也能看懂的电子电路学PDf
  • 斗西游破解版
  • unity怎么念
  • opengl mesa
  • Extjs中DisplayField的日期或者数字格式化扩展
  • nodejs formidable
  • 10分钟掌握心理学
  • nodejs获取当前时间
  • javascrpt绑定事件之匿名函数无法解除绑定问题
  • angularjs2
  • JavaScript Length 属性的总结
  • 国家税务总局核定的该车最低计税价格
  • 税务稽查为什么不问证人
  • 如何申报印花税的流程
  • 国家税务总局每家公司都可以注册吗
  • 河南工商年检网上申报APP
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设