Caution: You are browsing the legacy 1.x part of this website.
This version of symfony is not maintained anymore. If some of your projects still use this version, consider upgrading.

Master Symfony fundamentals

Be trained by SensioLabs experts (2 to 6 day sessions -- French or English).
training.sensiolabs.com

Discover SensioLabs' Professional Business Solutions

Peruse our complete Symfony & PHP solutions catalog for your web development needs.
sensiolabs.com
Jobeet

前情提要

昨天我们没有编写任何PHP代码就已经搭建好了 开发环境、还创建了空的 symfony 项目, 并确保我们以一些好的安全默认值开始。如果照做了的话,一定 会非常惊喜的发现,新应用程序的默认 symfony 页面非常漂亮。

欢迎页

但你想要更多。你想知道 symfony 应用程序开发的一切细节。那么,继续我们的 symfony 开发之旅吧。

今天,我们花点时间来谈谈 Jobeet 项目的需求,并做一些基本的模拟。

项目起源

现在而今眼目下,很多人都在讨论经济危机。失业率又上升了。

我知道, symfony 开发者并不真正被关心到,这也是为啥要在第一时间学习 symfony。 但是也很难找到优秀的 symfony 开发者。

到哪里找 symfony 开发者呢?到哪里宣传你的 symfony 开发技能呢?

你需要一个好的招聘网。你说Monster啊?再想想。你需要一个很多人都在关注的招聘网。 在那里你可以找到最好的人,专家。在那里,你也可以轻松、快速并很有趣的寻找工作或者推荐人才。

不用找了, Jobeet 就是你要找的。 Jobeet 是一个开源的招聘求职软件,专注于一件事儿,并认真做好。 使用、定制、扩展功能都很方便,你还可以将它嵌入到你的网站中。支持多国语言,当然还会使用最新 的 Web 2.0 技术来提升用户体验。 它还会提供订阅种子和和方便实战的API供您交互。

有这样的项目存在吗?作为因特网用户, 你可以找到非常多的和 Jobeet 类似的招聘网站。但是,没 有任何一个是开源的,也没有任何一个有如此丰富的功能。

谁说过用 symfony 开发连24个小时都不用?赶紧的,我们开始吧。

项目的用户故事

埋头编码之前,先深入研究下项目。下面的几个小节里,我们用几个简单的故事来描述在 第一个版本(第一次迭代)中我们将要实现的功能。

jobeet 网站有以下四类用户:

  • admin:拥有网站并有最高权限
  • user:访问网站的求职者或者招聘方
  • poster: 发布工作
  • affiliate: 在自己网站上推广 Jobeet 上工作的人

项目包含两个应用程序:和用户直接打交道的前台 (用户故事 F1到 F7,如下)以及管理员管理网站所用 到的后台(用户故事B1到B3)。

后台应用程序被安全保护需要密码登录。

用户故事 F1: 首页,用户能看见最新的活跃工作

当用户访问 Jobeet 网站时将看到一个活跃工作列表。工作将按照分类和发布时间先后(新工作在前)排列, 每个工作只需展示地址、岗位和公司等字段。

列举每个分类下的前10个工作,并连接到列举该分类的所有工作页面(用户故事 F3)。

在首页,用户还可以优化工作列表(用户故事 F2)或者发布新工作(用户故事F5)。

首页模拟

用户故事 F2: 用户可以查找指定分类下的所有工作

用户在首页点击分类名称或者“更多工作”的链接后,可以看见该分类下的所有工作,按照时间先后排列。

工作列表按照每页20个工作的规则分页。

分类页面

用户故事 F3: 用户通过关键词优化工作列表

用户可以通过输入关键词来优化搜索。关键词可以用来匹配地点、职位、分类和公司等字段。

用户故事 F4: 用户点击工作可查看更多详细信息

用户可以从列表中点击工作来查看详细信息

工作详细页面

用户故事 F5: 用户发布工作

用户可以发布工作。一个工作由以下几部分组成

  • 公司
  • 类型(全职、兼职、自由职业)
  • Logo(可选)
  • URL(可选)
  • 职位
  • 地点
  • 分类 (用户从后台预设的分类中选取)
  • 工作介绍 (自动为URL和email创建链接)
  • 怎样申请 (自动为URL和email创建链接)
  • 公开 (推广网站是否可以推广改工作)
  • Email (发布人的Email)

发布工作不需创建帐号。

发布流程只需简单的两步:用户先填写描述工作必要信息的表单中, 然后通过预览最终工作展示页来确认提交。

即使用户没有帐号,工作仍可通过特别的URL地址来修改。帖子创建成功时, 创建者将获得该地址的保护密码。

每个帖子可持续在线30天(这个可以在后台配置-参见用户故事B2)。用户可以重新 激活并验证其有效性,再再增加30天在线时间。帖子下线超过5天后就可不再修改了。

工作创建页面

用户故事 F6: 申请推广

用户需要注册为推广这并获得授权才可使用 Jobeet 的 API。申请时必须提供如下信息:

  • 姓名
  • Email
  • 网站 URL

推广者帐号必须通过管理员后台激活(用户故事 B3)。激活时,推广者将通过email收到使用API的密钥。

用户故事 F7: 推广者获取当前活跃工作列表

推广者可使用密码通过API调用获取当前活跃工作列表。返回的工作列表可以是XML、JSON或者YAML等格式。

列表包含工作的公开的可用的信息。

推广者可以限定返回工作列表的数目,也可通过指定分类来优化查询。

用户故事 B1: 管理员配置网站

管理员可以修改网站可用的分类。

他也可以修改其他设置:

  • 首页显示的工作数量
  • 网站语言种类
  • 工作可持续在线天数

用户故事 B2: 管理员管理工作

管理员可以修改或者删除任何已发布的工作。

用户故事 B3: 管理员管理推广者

管理员可以创建或编辑推广者,有权激活推广者或者取消某个推广者的权限。

当管理员激活推广者帐号时,系统自动为推广者创建唯一的密钥。

明天见

对于任何web开发来说,你永远不要在第一天就开始编码。你应该首先收集需求并做 模拟设计。这就是我们今天所做的。

和昨天一样,Jobeet SVN 代码仓库里今天的代码已经公开。请取出取出标记为 release_day_02 的版本。

$ svn co http://svn.jobeet.org/tags/release_day_02/ jobeet/

News from the Symfony blog

Visit The Symfony Blog

In the news

The Symfony Certification by SensioLabs

Symfony 3 Certification now available in 4,000 centers around the world!

Get certified

Upcoming training sessions