在写了《如何在Ubuntu Server 11.10上安装Gitorious》这篇博文之后,很多兄弟反应这个安装的过程过于复杂,能否找到一个在Ubuntu上安装比较简单的Git系统,得益于Google和百度,本人在网上找到了GitLab,正如其名字长度那样,相对于Gitorious来说在Ubuntu上的安装要简单不少,故将其安装过程记下即也可以满足兄弟们的要求,也可以备查(最近官网上有了更新,相应也做了更新,主要是将gitosis更换成更简单强大的gitolite)。
Git是一个分布式的版本控制系统,用于Linux内核的管理。在推出后,Git也逐渐被用于其他项目,同样也取得了很大的成功。GitHub则是基于Git版本控制系统的,它提供基于互联网的项目托管服务,但GitHub并不开源,所以我在网上找到了替代GitHub的开源项目托管系统:Gitorious。
升级到ubuntu 11.10之后,由于库里没有sun-java6-jdk,需要自行安装。因此,到Oracle网站下载了Java 6u27(为什么不下java7呢?因为目前支持的软件不多,另外如果真要的话,也可以很方便的切换到Java7),然后写一个博客备忘,:)
眼看着就要到Ubuntu 11.10发布的日子了,趁着十一有时间,也趁着现在还没到下载高峰,急着尝了把鲜,把我的笔电从11.04升到了11.10,升级很顺利,比起以前要顺畅的多。就是在升级之后发现存在两个问题:无法上网和输入法切换,花了半个小时才解决,真是郁闷,留个痕迹给同样需要升级的Ubuntu兄弟们提个醒
Provides integration for DoctrineExtensions_ for your Symfony2 Project.
为了您Symfony2项目提供对DoctrineExtensions_的整合。
Features
特点
========
This bundle allows to easily use DoctrineExtensions_ in your Symfony2
project by configuring it through a ``ListenerManager`` and the DIC.
通过配置``ListenerManager`` 和DIC,本Bundle可以在您的Symfony2项目中很方便地来使用DoctrineExtensions_。
Symfony2在正式发布之后,对其命令做了一定的修改,现将2.0.1版本的命令罗列如下,以备今后查用:
I just wanted to write a quick post illustrating how to use the http basic authentication mechanism to test secured pages. Since the testing framework does not support sessions at the moment, it is not possible to write tests using the form login mechanism. Because of this, we have to use http basic authentication to test our secure pages.
我只想快速写一篇文章说明如何使用HTTP基本认证机制来测试安全页面。因为测试框架目前不支持会话,因此不可以使用表单登录机制来编写测试。有鉴于此,我们不得不使用HTTP基本认证来测试我们的安全页面。
Since a post on security was requested, I am going to show you how to secure a route prefix in your application. The symfony2 security component is very powerful and complex. This implementation will be simple, but you should be able to easily build on it. For securing a production application I would strongly recommend using the FOSUserBundle which can be found here. This bundle is written by some of the core developers of symfony2 and will most likely become the “sfGuardPlugin” for symfony2. T
In Part II we configured doctrine to connect to our database, created some managed entities out of plain old PHP objects using annotations and then used those annotations to let doctrine create our database tables for us. In this part, we will set up some routing, use controllers and learn about templating with Twig. We are going to be setting up some static pages to show how routing, controllers and templates work at a high level. In the next part we will start getting to some dynamic content a
In Part I we created a fresh bleeding edge symfony2 project and briefly went over the directory structure of the project. Now we are going to configure our doctrine2 ORM database connection and create our data model. We are going to use doctrine2′s doc-block annotations to transform our plain old PHP objects into managed entities. If you are coming from a symfony1 background like me then the more you work with symfony2 and doctrine2 the more you will realize how much of the “magic” has been remo
RestBundle
==========
This bundle provides various tools to rapidly develop RESTful API's & applications with Symfony2.
这个Bundle提供各种工具来使Symfony2能够快速开发Rest风格的API和应用程序。
Its currently under development so key pieces that are planned are still missing.
它当前正在开发,因此其关键部分仍在规划中,并不明了。
Provides user persistence for your Symfony2 Project.
为您的Symfony2项目提供用户持久化
Features
功能
========
- Compatible with Doctrine ORM **and** ODM thanks to a generic repository.
- 与Doctrine ORM **和** ODM 兼容,这归功于通用库
- Model is extensible at will
- 模型可随意扩展
- REST-ful authentication
- REST风格的认证
- Current user available in your controllers and views
- 当前用户在您控制器和视图中可用
- Unit tested and functionally tested
- 支持单元测试和功能测试
Symfony2有着很多的命名约定,这一点大家可能在阅读Symfony2Book中已经看到了。那么Symfony2到底有多少命名约定呢,它们的命名约定分别是什么呢?由于Symfony2中不同组件的命名约定各不相同,所以很有必要将各种不同的命名约定都做一个梳理。下面是本人梳理出来的命名约定,如果在以后碰到这里没有的会再继续完善,也欢迎各位兄弟指出丢失的命名约定。
Symfony2是一个非常优秀的框架,但它也仅仅只是框架。框架的作用众所周知是为了能够快速开发出代码组织良好的应用程序,而且基于框架开发者可以集中精力进行业务逻辑的开发,而不会将精力浪费在其它细节上面。虽然框架有着很多的好处,但它并不象CMS、Wordpress之类的PHP程序那样是拿来就可以用的,它要实现某种功能是需要开发的。
第三方的Bundle其实部分解决了这个问题,当你需要基于Doctrine的用户和角色时,你无须开发一个用户和角色的Bundle,而只需要安装Symfony2Bundle网站中的UserBundle即可。同样,你需要管理功能,只需安装AdminBundle。同样还有MenuBundle、RestBundle等第三方的Bundle供你使用。那么为什么要使用第三方Bundle而不自行开发呢?原因一来是那句老话不要重复去发明轮子,二来则是与框架一样的,将精力集中在业务逻辑上(这通常是独一无二或无法重用的)。
最近,出于对Symfony2的关注,在网上闲逛时不时会留意Symfony2的文章,尤其是中文方面的。前段时间拜读了一饼兄的《Symfony2入门》一文,觉得比官网上的例子涉及面更广便做了转载。今日有暇细读,却发现一饼兄只是大体对Symfony2做了介绍,如果参照该文来入门的话,却是存在很大的问题,于是便有了这一篇文章。
The aim of this chapter is to give a more in-depth view of the ACL system, and also explain some of the design decisions behind it.
这个章节的目的是更深入了解ACL系统,并且在末尾会解释一些设计理念。
In complex applications, you will often face the problem that access decisions cannot only be based on the person (Token) who is requesting access, but also involve a domain object that access is being requested for. This is where the ACL system comes in.
在复杂的应用程序里,你将经常遇到访问权不仅仅只是基于正在请求访问的用户,还包含一个正在被请求访问的域对象。这就需要涉及到ACL系统了。
面向对象代码在确保代码的扩展性方面已经走了很长的路。通过创建有着明确职责的类,你的代码可以变得更加灵活,并且开发者可以扩展它们的子类去修改它们的行为。但如果他想与其它那些也生成他们自己子类的开发者去分享他的改变时,代码继承已经没有意义。
考虑一下真实世界的例子,你想为你的项目提供一个插件系统。该插件可能添加一个方法,在该方法执行前或后做些事情,而不干扰其它插件。这并不是一个可以通过继承和多重继承(PHP可能做到)就可以容易解决的问题,它们有着自身的缺陷。
因为项目需要想在网上找点phpGACL的资料,可是在网上遍寻不着,于是只要靠自己很烂的E文水平去看E文原版资料了。看得郁闷之处,不觉开始埋怨 起来,想我堂堂中华居然就没有一E文功底深厚牛人给翻译一下,害得我这么费眼费神地去半蒙半猜地看E文。可能是抱怨的次数过多,朋友忍不住开始说我了,大 概是说我只知道拿E文差做借口,然后就心安理得地边抱怨边享受人家的劳动成果还说
HttpKernel类是Symfony2的核心类,负责处理客户端的请求。它的主要目标是将Request对象“转换”成Response对象。
每个Symfony2的Kernel都实现HttpKernelInterface接口:
看起来你想要知道Symfony2是如何工作的,以及要如何对它进行扩展。这让我非常高兴。本节深入Symfony2内部,对其进行说明。
如果你想了解Symfony2是如何工作的,或者你想扩展Symfony2的话,你只需要阅读本节。
Symfony2的代码由几个独立层构成,每层都构建在上一层之上。
现代的PHP应用程序是完全面向对象的。一个对象也许方便地发送电子邮件消息,而另一个对象也许让持久化信息到数据库。在你的应用程序中,你也许创建一个对象来管理你的产品库存、或者从第三方API中处理数据。问题的关键是现代应用程序可以做太多的事了,是到了将许多处理每个任务的对象组织起来的时候了。
Bundle是一个有着良好定义结构的目录,它可以包含包括类、控制器和Web资源在内的任何东西。尽管Bundle非常灵活,但如果你想发布它的话,你还是应该遵循一些惯例:
所谓“国际化”是指抽象字符串的过程,它从你的应用程序中取出其它特定的语言环境部分并放入一个可以基于用户所在语言环境(如语言和国家)将其翻译和转换的层。对于文本,这意味着可以通过将文本(或“消息”)翻译成用户语言的函数来进行封装:
富Web应用程序的特征就是它们是动态的。无论你的应用程序多么有效率,每个请求总是比服务静态文件有着更多的开销。
对于大多数Web应用程序而言,这是好的。Symfony2非常快,除非你做的是很重量级的事,否则每个请求都会很快被返回,这不会给你的服务器太大压力。
但当你的站点增长之后,开销就变成了一个问题。对每个请求的正常处理应该只做一次,这正是缓存的目标所在。
安全是个两步过程,它的目的就是防止用户访问他/她无权访问的资源。
过程的第一步,安全系统识别用户是谁,要求该用户提供一些有序的验证。它被称为认证,它的意思是系统尝试发现你是谁。
一旦系统知道你是谁之后,下一步就是决定你是否可以访问指定的资源。过程的这一部分称为授权,它的意思是系统正在检查,看看你是否有执行某些动作的权利。
对于Web开发者来说,处理HTML表单是最常见的任务(也是挑战)之一。Symfony2集成了Form组件以使得表单处理更为容易。在本章中,你将从头开始构建一个复杂的表单,并且学会表单库中大部分的重要功能。
Symfony2表单组件是一个独立库,它可以在Symfony2项目之外使用。更多详情参见Github中的Symfony2表单组件。
验证是Web应用程序中非常常见的任务。填入表单的数据需要验证,在它们被写入数据库或被发送给Web服务时也需要验证。
Symfony2附带的Validator组件使这个任务变得简单和透明。该组件基于JSR303 Bean验证规范。什么?在PHP中使用JAVA规范?你没听错,但它并不象听上去那么糟。让我们看看它是怎么在PHP使用的。
一直用Blogbus,但是现在发现越来越不好用了!当然主要是说我们这帮写博客时要经常放代码的人,所以就到处找好的博客空间了,于是就到了这里,看看还行,于是就开博了!:)
无论何时,你只要编写一行新的代码,你就有可能引入新的Bug。你应该使用自动测试,该教程将向你显示如何为你的应用程序编写单元测试和功能测试。
测试框架
Symfony2测试很大程序上依赖PHPUnit,它的最佳实践,和一些约定。这部分并不是PHPUnit本身的文档,但如果你还是不能理解的话,你可以阅读它优秀的文档 。
Symfony2使用PHPUnit 3.5.11或以上版本。
缺省的PHP
firehare
分享到朋友圈
关注技术:PHP Oracle jQuery 自动化运维 ubuntu Docker 入住博客:2009-06-04 11.7年