运行symfony的电视台ob娱乐下载
OktoLab GmbH是一家小公司坐落在维也纳,奥地利,专业提供硬盘和软件服务的电子媒体部门——主要是视频和电视制作。这包括出租设备如摄像机或视频编辑工作站以及编辑/切割服务和软件开发。主要的客户是Okto电视、一个社区电视台运行在公共基金。欧宝体育平台怎么样
当我加入OktoLab(大卫·赫尔曼)在2008年代中期,我们不得不面临一些严峻的挑战。前面(当时)开发人员放弃了公司在短时间内,留下了一个混乱的各种软件服务松散或不耦合:
- 方案规划软件(PHP4 / Postgres)
- 电子表格文件和一个白板与粘性标签完成规划阶段
- 另外一些计划在iCal可视化
- 地址簿和训练计划(Ruby on Rails / Postgres)
- 用户帐户管理器(PHP4 / LDAP)
- 电视连续剧经理(可可/ Postgres通过PHP服务)
- 库存和租赁经理(PHP4 / MySQL)
- 许多shell脚本的各种任务(bash, PHP)
- βWordpress MU multi-blog web页面的实例
这种情况并非由于开发人员,这是一个公司的发展的结果。情况已经失控,这是一个巨大的压力来改善它。这里我在2008年的夏天,一群原油应用程序没有相似点在我的面前,一个明确的指示下一步要做什么:
“替代方案规划和电视系列软件,使它们更有用。一定要选择一个坚实的基础建立之后。”
所以我所做的。但如何?
在项目开始
在这一点上我有大约7年的PHP的经验,无论是在PHP3/4(我一直活跃在早期phpBB社区)和OOP PHP5,几个月前已完成一个巨大的项目。欧宝体育平台怎么样但是这个任务需要另一种方法,我开始寻找一个框架来帮助我有效地完成工作。经过一番搜索和评估CakePHP之间我必须决定,Zend框架和symfony。ob娱乐下载ob娱乐下载Symfony刚刚发布了1.1版本,我立刻很着迷的简单而可扩展的方法使事情工作和文档。欧宝官网下载app检查所有的需求后,我决定支持symfony,我永远不会后悔的决定或有任何怀疑这是正确的决定。ob娱乐下载
事情进展很快。我们事先做了大量的规划和评估,因此日常工作流可以尽可能详细的描述。这是一个非常重要的阶段的项目,因为我们发现,迄今仍被使用的软件不满足要求。除此之外,电视时间表的计划能力非常有限,不能令人满意。
我很快创建了前几个模型定义和用户界面,和大多数事情像预期的那样工作。因为当时学说仍然没有完全稳定的我已决定用更成熟的推动我的ORM。这个决定也证明很好——我从来没有遇到任何严重的ORM问题所以我能够专注于应用程序本身。
升级到1.2 symfonob娱乐下载y,了解形式
symfony 1.2发布后ob娱乐下载不久,我决定升级项目。以来有不少部分,不做(例如太多代码在控制器和形式的依赖关系)我使用重构最明显的错误的机会。正确的形式实际上是比预期的更困难。应用程序使用大量的手工制作的形式,要求自定义输入,如工作日选择器,保存在单个字节(7位)使用一个位图或多个嵌入式表单与动态添加选项。
后很多深入表单代码库和当时不太完整的表单文档我终于他们并发现如何使用正确的形式。欧宝官网下载app这是最难的部分在18个月的学习和使用symfony,但值得每一分钟花:现在所有的形式做我希望他们做什么,不管他们有多复杂。ob娱乐下载我不得不写一些定制小部件和验证器,但一旦你习惯很简单,非常强大的。
JavaScript和AJAX
另一个大项目少的一部分symfony-related必须整合只是:一个完全动态的iob娱乐下载Cal日历视图来取代“解决方案”。我使用jQuery,它工作得很好。连接使用AJAX日历symfony应用程序非常容易。ob娱乐下载
注:你知道吗,没有一个日历应用程序或库,正确显示DST切换时间(3月10月和1 + 1)?我很惊讶,但是没有人除了电视台似乎需要此功能!也许有一些工作时间申请会计目的考虑,但我从没见过一个。
其他一些AJAX功能一样容易实现。控制器的明确分离/操作部分使添加AJAX symfony小菜一碟。ob娱乐下载
数据和验收
从一开始的项目是非常重要的提供现实的测试数据。这是通过创建一个命令行进口商从Postgres数据库,把所有的现有数据并把它推向了新的模型。这样关键人的小组,我们的测试用户总是有最新的数据可能比现有的软件。
执行用户接受的另一个重要方面是创造一个吸引人的视觉风格在项目的一开始。外部设计师做了伟大的工作提供一个基本的模板,可以集成快速并使应用程序不仅表现好,而且看起来很好。因此,用户真正期待正式发布日2009年10月,当旧的计划软件禁用支持新的symfony-powered项目规划工具。ob娱乐下载
连接世界的其他地方:API
使用symfony的强大的其他功能很容易实现读写接口,支持各种输出格式为各种与外ob娱乐下载部世界的联系。这些接口包括视频文本的生成、网站上的在线项目,播出服务器和更多的播放列表。symfony再次显示ob娱乐下载了其强大的灵活性和易于使用的语法。
最重要的一个接口是数据交换的程序。有很多“消费”的应用程序需要知道电视时间表。他们中的大多数得到一个简单的XML格式的数据。
- 每当一个新文件在播出系统,一个脚本要求迎面而来的程序数据更新空气视频文本。
- 主页更新进度概述一天5次通过抓取数据在接下来的3周,上载到web服务器。
- 使用一个简单的XSL转换可以转化成iCal格式相同的XML数据,让它可以在任何一个日历应用程序。
- 提供项目系列(例如series-specific页)在RSS格式将很快上市。
- 交换安排电视杂志也提供各种专有的XML格式。内容从API和上传到该杂志的FTP服务器。
API还用于交换元数据内容与社区合作电视台和公共媒体档案。欧宝体育平台怎么样相反程序API还提供了写访问。
此外一些系列相关元数据发布到视频文本服务器和网站定期。
可用的API是通过一个symfony应用程序前端分开,所以它可ob娱乐下载以使用不同的安全与缓存选项。这也很容易让API为外部访问不同的服务器上运行。
另一个迁移:symfony 1.3/1ob娱乐下载.4
目前(2010年初)项目规划软件被移植到1.4 symfony。ob娱乐下载大部分的工作已经完成(这并不是说由于代码很干净的开始),没有意想不到的困难,所以这只是小事情必须适应,例如一些表单组件扩展其他部件发生了微妙的变化。考虑到symfony 1.4会有3ob娱乐下载年的支持软件的完整生命周期至少历时4年在一个稳定的环境中,这是很长时间在这个紧张的节奏网络软件的世界。
所有其他的项目呢?
在初始阶段结束后和项目规划软件开始成形,其他应用程序也部分重写或现代化。到2010年年中,每一个应用程序在Okto电视将运行在symfony——甚至是Wordpress网站将取代了symfonob娱乐下载y-powered CMS(这是一个正在进行的工作)。各种应用程序之间的接口将使用清洁其他实现。这是2年总代替每一个应用程序,其实很短。
这一切就不会没有symfony的强大的功能和灵活性。ob娱乐下载方案规划软件现在使用60多个数据库表,定期添加,因为最重要的组件已经解耦使用事件调度器代替直接调用有很多的进一步扩张空间。
另一个有趣的项目,在最初的2008年计划的自动化各种视频格式转换等处理任务。创建批处理队列系统目的是接近完成,但它为另一个全文包括足够的有趣细节。
组织的影响
之后,很多工作去创造很多新的软件最重要的问题从客户的观点是:利益是什么?完全可以看到减少约30%的时间来把事情做好。是的,新的软件节省了大约三分之一的时间旧的软件需要做的更少!这并不是30%的1人——30%的4人,使其中的一个完全可用质量等其他任务或内容检查视频材料。检查视频更有趣比iCal的播出日期推!
这主要是实现了,因为那么多的时间去分析和优化工作流程。计划一天仅花了3 - 4个小时在过去和今天完成了大约10分钟(以及更容易出错)。没有symfonob娱乐下载y的灵活性这几乎是不可能的!
关于作者
大卫·赫尔曼是机械、电子和软件工程师接近30年代爱任何一种技术的东西只要它提供新创意的方式被使用。他被编码在很多语言在各种平台上,但主要是在PHP, Java和JavaScript。不工作的时候,大卫是花时间与家人或他的自行车。他有时写软件开发blog.vworld.at
这个案例研究是由用户提供的symfony框架和各方的同意发表。ob娱乐下载你有兴趣在你的案例研究发表在symfony的博客吗?ob娱乐下载随时联系我们的社区经理斯蒂芬Koopmanscha欧宝体育平台怎么样p (Stefan。koopmanschap -在前台- dob娱乐下载ot - com)。
评论
评论都关门了。
以确保评论保持相关,他们关闭了旧的帖子。
@Davide:我们住在推动,因为切换到原则只会引起头痛。只是没有理由开关因为推动工作很伟大和鳞片。
我个人也喜欢getter和setter直接访问属性,3的原因:
感觉清洁(Java的家伙在我说话;-),它允许更清洁的接口
b)我不得不重写大量的getter和setter出于各种原因
c) setter链接是人类历史上最伟大的发明之一;-)
@Marc:出于好奇:这地方广播呢?你也可以给我发邮件:大卫[[在]]vworld。在;-)
我很好奇,因为事件分配器是一个相当新的和强大的概念,你说你是广泛使用它,也许你可以告诉你如何使用它的一些例子吗?岩石。
谢谢,
丹尼尔