目录
高性能PHP框架Symfony2经典入门教程,symfony2入门教程
小弟跪问:对于php初学者来说应该学哪个php框架与哪个cms比较好?
有关入门php框架的的事情
首页 后端开发 php教程 高性能PHP框架Symfony2经典入门教程,symfony2入门教程_PHP教程

高性能PHP框架Symfony2经典入门教程,symfony2入门教程_PHP教程

Jul 13, 2016 am 10:23 AM
php框架 入门

高性能PHP框架Symfony2经典入门教程,symfony2入门教程

Symfony2是一个基于PHP语言的Web开发框架,有着开发速度快、性能高等特点。本文以一个程序示例的实现过程详细叙述了Symfony2框架的配置与程序开发。

一、下载

首先是下载Symfony2,到 http://symfony.com/download或者本站下载http://www.bkjia.com/codes/187833.html。本人以Ubuntu系统为例,采用.tgz的压缩包,解压源文件到/var/www目录中并执行:

tar zxvf Symfony_Standard_Vendors_2.0.###.tgz -C /var/www

登录后复制

上面的###是指版本号,我下的时候是BETA5。

当解压之后,Symfony2的目录如下:

/var/www/ <- Web根目录 
 Symfony/ <- Symfony2解压目录 
  app/ <- 存放symfony的核心文件的目录
   cache/ <- 存放缓存文件的目录
   config/ <- 存放应用程序全局配置的目录
   logs/ <- 存放日志的目录
  src/ <- 应用程序源代码
   ... 
  vendor/ <- 供应商或第三方的模组和插件
   ... 
  web/ <- Web入口
   app.php <- 生产环境下的前端控制器
   ... 

登录后复制

如果你需要安装(如果你下载的是without vendor版本)或更新vendor(第三方)内容时,可以使用:

cd /var/www/Symfony
php bin/vendors install

登录后复制

二、配置

Symfony2的配置很简单,只需要在浏览器中输入:

http://localhost/Symfony/web/config.php

登录后复制

然后按照提示来进行就可以了。其中值得注意的就是app/cache和app/logs目录的权限问题,由于我是在Ubuntu下安装的,所以可以使用(其中firehare是我的用户名,大家在这里可以用你的用户名代替):

#为了保险起见 
rm -rf app/cache/* 
rm -rf app/logs/* 
#设置ACL 
sudo setfacl -R -m u:www-data:rwx -m u:firehare:rwx app/cache app/logs 
sudo setfacl -dR -m u:www-data:rwx -m u:firehare:rwx app/cache app/logs 

登录后复制

如果系统不支持setfacl命令的话,要检查2个地方:
  setfacl是否已经安装,如果没有的话,可以通过以下命令安装(在Ubuntu 11.10中好象已经缺省安装了,包为叫acl):

sudo apt-get install setfacl 
登录后复制

  如果setfacl已经安装,那么请查看/etc/fstab文件,看看是否添加了acl选项:

# /var was on /dev/sda7 during installation 
UUID=c2cc4104-b421-479a-b21a-1108f8895110 /var ext4 defaults,acl 0 2 

登录后复制

  然后根据页面提示填写数据库名等信息,再将这些信息拷到/var/www/Symfony/app/config/parameters.ini文件中,如下所示:

; These parameters can be imported into other config files 
; by enclosing the key with % (like %database_user%) 
; Comments start with ';', as in php.ini 
[parameters] 
 database_driver="pdo_mysql" 
 database_host="localhost" 
 database_name="symfony" 
 database_user="symfony" 
 database_password="symfony" 
 mailer_transport="smtp" 
 mailer_host="localhost" 
 mailer_user="" 
 mailer_password="" 
 locale="zh_CN" 
 secret="29f96e9e70c2797cb77dd088d3954d3c38d9b33f" 
登录后复制

  
如果全部OK的话,在你浏览器中输入下列地址时,你将得到一个Demo页:

http://localhost/Symfony/web/app_dev.php

登录后复制

三、程序示例:

1.创建Bundle

  首先创建一个Bundle:

php app/console gen:bundle "AcmeHelloBundle" src
  为了确保Acme名称空间可以被自动加载,请在你的app/autoload.php文件添加下列语句:
$loader->registerNamespaces(array( 
 // ...
 //添加自定义的名称空间 
 'Acme' => __DIR__.'/../src', 
 // ... 
)); 
  最后是将该Bundle注册到Symfony2中,请在你的app/AppKernel.php文件中添加下列语句:
// app/AppKernel.php 
public function registerBundles() 
{ 
 $bundles = array( 
  // ... 
  new AcmeHelloBundleAcmeHelloBundle(), 
 ); 
 
 // ... 
 
 return $bundles; 
} 
登录后复制

2.创建路由

  路由可以创建在app/config/routing.yml中,但为了有个好的编程习惯和代码组织,可以将它放在所建Bundle目录中的Resources/config/routing.yml中,而在app/config/routing.yml中只保留到该路由文件的引用,如下所示:

# app/config/routing.yml 
homepage: 
 pattern: / 
 defaults: { _controller: FrameworkBundle:Default:index } 
hello: 
 resource: "@AcmeHelloBundle/Resources/config/routing.yml"

登录后复制

而真正的路由则写在src/Acme/HelloBundle/Resources/config/routing.yml路由文件中,如下所示:

# src/Acme/HelloBundle/Resources/config/routing.yml 
hello: 
 pattern: /hello/{name} 
 defaults: { _controller: AcmeHelloBundle:Hello:index, name:'pu' }

登录后复制

3.创建控制器:

  控制器的名字一定得是HelloController.php,原因很简单,因为你路由已经把控制器的名字给定下来了,在上面路由文件中的第4行和第7行中的控制器都是以AcmeHelloBundle:Hello开头的,其中AcmeHelloBundle表示Bundle名,而Hello则表示控制器名,所以控制器必须是HelloController.php,Controller名缀是命名约定。而至于后面的index和say则是控制器类中的方法。下面就定义了index方法,当然方法名为indexAction这个也是命名约定:

// src/Acme/HelloBundle/Controller/HelloController.php 
namespace AcmeHelloBundleController; 
use SymfonyComponentHttpFoundationResponse; 
class HelloController 
{ 
 public function indexAction($name) 
 { 
  return new Response('<html><body>Hello '.$name.'!</body></html>'); 
 } 
} 
登录后复制

这样,当我们在浏览器中输入

http://localhost/hello/index/World

登录后复制

就会显示Hello World!这样的字样。

4.创建模板:

  为了能够重用布局文件中的区块,可以使用模板来代替控制器中的HTML语句。首先创建页面布局文件:

{# app/Resources/views/layout.html.twig #} 
<!DOCTYPE html> 
<html> 
 <head> 
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  <title>{% block title %}Hello Application{% endblock %}</title> 
 </head> 
 <body> 
  {% block body %}{% endblock %} 
 </body> 
</html> 

登录后复制

  注意,该文件位于app/Resources/views/目录中,作用范围是整个应用程序的全局模板文件。在该文件中定义了两个区块:title和body。接下来就是创建一个专用于Hello控制器的模板,如下所示:

{# src/Acme/HelloBundle/Resources/views/Hello/index.html.twig #} 
{% extends '::layout.html.twig' %} 
{% block body %} 
 Hello {{ name }}! 
{% endblock %} 

登录后复制

  在该文件中,它继承了全局模板,并且定义了区块body,这样就覆写了全局模板中的body区块。如果系统在渲染到该模板时,会将区块body覆写全局模板的区块body,再进行渲染。
  最后,将控制器中的HTML语句改成渲染上述模板即可:

// src/Acme/HelloBundle/Controller/HelloController.php 
namespace AcmeHelloBundleController; 
use SymfonyBundleFrameworkBundleControllerController; 
class HelloController extends Controller 
{ 
 public function indexAction($name) 
 { 
  return $this->render('AcmeHelloBundle:Hello:index.html.twig', array('name' => $name)); 
 } 
}
登录后复制

小弟跪问:对于php初学者来说应该学哪个php框架与哪个cms比较好?

现在主流使用织梦 和帝国CMS
我个人比较倾向帝国CMS

php框架 初学者建议你使用集成环境一键安装 PHPNOW或者APMServ
自己电脑没必要搞的太复杂
 

有关入门php框架的的事情

既然是大项目,建议不用框架,要是用可以考虑zendframework,thinkphp,同时说明一下smarty不属于框架,建议用smarty作为你开发的模板处理机制
 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/840749.htmlTechArticle高性能PHP框架Symfony2经典入门教程,symfony2入门教程 Symfony2是一个基于PHP语言的Web开发框架,有着开发速度快、性能高等特点。本文以一个程...
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

一键生成PPT!Kimi :让「PPT民工」先浪起来 一键生成PPT!Kimi :让「PPT民工」先浪起来 Aug 01, 2024 pm 03:28 PM

Kimi:一句话,十几秒钟,一份PPT就新鲜出炉了。PPT这玩意儿,可太招人烦了!开个碰头会,要有PPT;写个周报,要做PPT;拉个投资,要展示PPT;就连控诉出轨,都得发个PPT。大学更像是学了个PPT专业,上课看PPT,下课做PPT。或许,37年前丹尼斯・奥斯汀发明PPT时也没想到,有一天PPT竟如此泛滥成灾。吗喽们做PPT的苦逼经历,说起来都是泪。「一份二十多页的PPT花了三个月,改了几十遍,看到PPT都想吐」;「最巅峰的时候,一天做了五个PPT,连呼吸都是PPT」;「临时开个会,都要做个

CVPR 2024全部奖项公布!近万人线下参会,谷歌华人研究员获最佳论文奖 CVPR 2024全部奖项公布!近万人线下参会,谷歌华人研究员获最佳论文奖 Jun 20, 2024 pm 05:43 PM

北京时间6月20日凌晨,在西雅图举办的国际计算机视觉顶会CVPR2024正式公布了最佳论文等奖项。今年共有10篇论文获奖,其中2篇最佳论文,2篇最佳学生论文,另外还有2篇最佳论文提名和4篇最佳学生论文提名。计算机视觉(CV)领域的顶级会议是CVPR,每年都会吸引大量研究机构和高校参会。据统计,今年共提交了11532份论文,2719篇被接收,录用率为23.6%。根据佐治亚理工学院对CVPR2024的数据统计分析,从研究主题来看,论文数量最多的是图像和视频合成与生成(Imageandvideosyn

从裸机到700亿参数大模型,这里有份教程,还有现成可用的脚本 从裸机到700亿参数大模型,这里有份教程,还有现成可用的脚本 Jul 24, 2024 pm 08:13 PM

我们知道LLM是在大规模计算机集群上使用海量数据训练得到的,本站曾介绍过不少用于辅助和改进LLM训练流程的方法和技术。而今天,我们要分享的是一篇深入技术底层的文章,介绍如何将一堆连操作系统也没有的「裸机」变成用于训练LLM的计算机集群。这篇文章来自于AI初创公司Imbue,该公司致力于通过理解机器的思维方式来实现通用智能。当然,将一堆连操作系统也没有的「裸机」变成用于训练LLM的计算机集群并不是一个轻松的过程,充满了探索和试错,但Imbue最终成功训练了一个700亿参数的LLM,并在此过程中积累

AI在用 | AI制作独居女孩生活Vlog,3天狂揽上万点赞量 AI在用 | AI制作独居女孩生活Vlog,3天狂揽上万点赞量 Aug 07, 2024 pm 10:53 PM

机器之能报道编辑:杨文以大模型、AIGC为代表的人工智能浪潮已经在悄然改变着我们生活及工作方式,但绝大部分人依然不知道该如何使用。因此,我们推出了「AI在用」专栏,通过直观、有趣且简洁的人工智能使用案例,来具体介绍AI使用方法,并激发大家思考。我们也欢迎读者投稿亲自实践的创新型用例。视频链接:https://mp.weixin.qq.com/s/2hX_i7li3RqdE4u016yGhQ最近,独居女孩的生活Vlog在小红书上走红。一个插画风格的动画,再配上几句治愈系文案,短短几天就能轻松狂揽上

细数RAG的12个痛点,英伟达高级架构师亲授解决方案 细数RAG的12个痛点,英伟达高级架构师亲授解决方案 Jul 11, 2024 pm 01:53 PM

检索增强式生成(RAG)是一种使用检索提升语言模型的技术。具体来说,就是在语言模型生成答案之前,先从广泛的文档数据库中检索相关信息,然后利用这些信息来引导生成过程。这种技术能极大提升内容的准确性和相关性,并能有效缓解幻觉问题,提高知识更新的速度,并增强内容生成的可追溯性。RAG无疑是最激动人心的人工智能研究领域之一。有关RAG的更多详情请参阅本站专栏文章《专补大模型短板的RAG有哪些新进展?这篇综述讲明白了》。但RAG也并非完美,用户在使用时也常会遭遇一些「痛点」。近日,英伟达生成式AI高级解决

PHP框架的优缺点比较:选哪个好? PHP框架的优缺点比较:选哪个好? Jun 04, 2024 pm 03:36 PM

PHP框架的选择取决于项目需求和开发者技能:Laravel:功能丰富,社区活跃,但学习曲线陡峭,性能开销高。CodeIgniter:轻量级,易于扩展,但功能有限,文档较少。Symfony:模块化,社区强大,但复杂,性能问题。ZendFramework:企业级,稳定可靠,但笨重,许可昂贵。Slim:微框架,速度快,但功能有限,学习曲线陡峭。

在不同开发环境中 PHP 框架的性能差异 在不同开发环境中 PHP 框架的性能差异 Jun 05, 2024 pm 08:57 PM

不同开发环境中PHP框架的性能存在差异。开发环境(例如本地Apache服务器)由于本地服务器性能较低和调试工具等因素,导致框架性能较低。相反,生产环境(例如功能齐全的生产服务器)具有更强大的服务器和优化配置,使框架性能显着提高。

快手可灵AI全球全面开放内测,模型效果再次升级 快手可灵AI全球全面开放内测,模型效果再次升级 Jul 24, 2024 pm 08:34 PM

7月24日,快手视频生成大模型可灵AI宣布基础模型再次升级,并全面开放内测。快手表示,为了让更多用户能使用可灵AI,更好满足创作者不同层次的使用需求,即日起,在全面开放内测的基础上,还将正式上线会员体系,针对不同类别的会员,提供相应的专属功能服务。同时,可灵AI的基础模型也再次迎来升级,进一步提升用户体验。基础模型效果再升级进一步提升用户体验发布一个多月以来,可灵AI已经多次升级迭代,随着本次会员体系的推出,可灵AI的基础模型效果再次迎来蜕变。首先是画面质量显着提升,通过升级后的基础模型生成的视

See all articles