PHP

Laravel 4入门:MVC框架

admin 提交于 星期一, 03/28/2016 - 09:59

本文基于Laravel 4.2编写,Laravel 5的教程请参考:Laravel 5入门:MVC框架

1. 路由Hello World

在app/routes.php里面添加下面代码,然后在浏览器里访问http://<laravel host prefix>/helloworld可以见到结果。

 

Route::get('/helloworld', function() {
  return '<html><body>hello world</body></html>';
});

2.  视图(View)

理论上可以把所有代码都写在app/routes.php里面,但是这会令代码难以维护。于是,我们可以把具体的页面内容搬到视图里,让路由文件简短一些。

app/routes.php

标签

PHP框架性能比较

admin 提交于 星期五, 11/27/2015 - 16:59

数据显示,Laravel很慢,只有主流PHP框架1/3速度,内存则是主流框架2倍多。Symfony2表现令人满意,每秒可以处理250个请求,功能强大但速度和内存都不差。Drupal7比Drupal8快2-3倍。Drupal8的性能接近于Symfony2,每秒大概处理200个请求。对于登录用户,Drupal的速度会下降到原来的1/25左右,可见缓存在Web程序的性能里起决定性作用。

标签

PHP代码规范

admin 提交于 星期五, 11/27/2015 - 10:07
  1. 文件统一使用UTF-8编码
  2. 类名使用StudlyCaps风格
  3. 方法名使用camelCase风格
  4. 常量名使用CONSTANT_VARIABLE风格
  5. 属性名、变量名建议使用以下三种风格之一:$StudlyCaps, $camelCase, or $under_score。在一定作用域范围内,这种风格应该是一致的。
  6. 使用空格做缩进,而不是TAB。编辑器可以设置把TAB转换成空格。
  7. 行的长度应尽量保持在80个字符以内,不应超过120字符。编辑器可以在80个字符处设置一条竖线。
  8. 左圆括号后、右圆括号前不应有空格。例如:if ($a === $b) 不应写成if ( $a === $b )
  9. 赋值、运算符号两边应该有空格,但++除外。例如:for ($i = 0; $i < 10; $i++)
  10. 适当的地方加空行把代码按逻辑归类

 

代码风格示例:

标签

7个不使用Symfony的理由

admin 提交于 星期五, 11/27/2015 - 09:33

1. 代码结构不直观

教程教开发者通过php app/console server:run来启动服务器,但没有告诉开发者如果用Apache或Nginx服务器时应该把document_root指向web子目录。这令用户一开始比较迷惑,不知道怎样把demo程序运行起来。同样的问题也发生在Model、View、Controller目录的寻找上,它不像ThinkPHP那样简单直观,MVC的代码不能直觉地找出来。

2. 复杂难懂的路由方式

教程里的路由例子在demo工程里并不能运行,原因是demo工程的路由插入了语言标记,而教程对这没有解释(这是在routing.yml里定义的)。demo工程里,如果把一篇文章的标题改成中文,demo程序会报错,原因是demo的URL包含了标题,而标题包含中文时会出问题。路由的代码居然是以注释的方式出现,这令初级的PHP程序员很不习惯。路由除了和注释有关之外,还和一个routing.yml的文件有关,这又是一个非PHP代码的方式,让人很不习惯,好像无缘无故要多学一种标记语言似的。类似的地方还有权限控制,权限控制不是通过PHP方式实现,而是yml+PHP代码注释方式实现。

标签

5大PHP模板引擎比较

admin 提交于 星期四, 11/26/2015 - 16:56
  • Blade:Laravel使用的引擎,但据说语法不太好,放在Laravel上性能也比较差。
  • Mustache:这是一个历史悠久,支持超过30种语言的模板引擎,但功能不够多。
  • Smarty:历史也比较长,ThinkPHP中默认使用这种引擎,给人感觉有点旧。
  • Twig:Symfony和Drupal用的模板引擎,技术新,功能好,文档好。
  • Volt:Phalcon使用的模板引擎,用C写,部署较困难。

 

参考:

标签

7个使用Symfony的理由

admin 提交于 星期一, 11/23/2015 - 18:42

1. 这是一个被很多其它著名框架或PHP应用所使用的框架

包括Drupal、phpBB、Laravel、Joomla、Composer、Magento、Piwik。

2. 教程和demo写得非常好

教程不但解释用Symfony怎样用,还通过很易懂的方式解释了Symfony的原理、HTTP的基本知识、MVC的概念等,并且不会令有经验的程序员觉得教程冗长。Drupal和Laravel都使用了Symfony,但Drupal和Laravel的教程远没有Symfony解释得令人明白,学习Drupal和Laravel的时候是有必要把Symfony也学习一下的。

输入以下命令即可下载一个完整可运行的demo程序,方便的超乎想象。demo程序分前端和后端,并且每个页面都可展示当前PHP代码,非常直观,甚至决定很神奇。神奇的东西还有demo的数据库,它用了不需要服务进程的SQLite,让习惯了MySQL的程序员觉得这个PHP demo为什么有数据库功能而感到莫名其妙。demo的外观设计时尚,让人一看就觉得是现代互联网站风格。

symfony demo

标签