首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

使用 CodeIgniter 创建 Facebook 应用程序(1)

使用 CodeIgniter 创建 Facebook 应用程序(1)

本文向您演示了如何让 Facebook 示例应用程序与 PHP 框架 - CodeIgniter 共同工作。虽然有许多有关 Facebook 开发的好文章,当然,也有一些有关使用 CodeIgniter 来构建应用程序的好文章,但是本文关注于 Facebook 可用的最新 PHP SDK。       
本文不是向您显示如何利用 Facebook SDK 的现有开发库,您将了解如何自己轻松地包装 SDK,然后再以一种快捷的方式使用它。本文还向您显示了进行以下操作所需的所有步骤:在 Facebook 中注册您的应用程序,以及如何设置 CodeIgniter 与 Facebook 一起工作。本文涵盖了在此过程中您可能会遇到的基本内容。
由于本文涵盖了相当多的领域,所以几个先决条件将有助于您更好地理解本文的内容。首先,您需要了解有关 PHP 和 CodeIgniter 的知识。您无需了解很多,但是一定程度上的熟悉将有助于您开始。您还需要访问您自己的公开可用的 web 服务器。应用程序(例如您将要创建的应用程序)总是位于它们自己的服务器上,然后在 Facebook 内的 iframe 中提供服务:仅来自  localhost 的编码在这里不起作用。最后很重要的是,您需要一个 Facebook 帐户,因为您需要在 Facebook 中注册您的应用程序。
基础知识在进入细节以前,简要介绍了 Facebook 应用程序和 CodeIgniter。               
Facebook 应用程序基础知识您可以构建不同种类的 Facebook 应用程序,包括移动和 web 应用程序 — 这是本文的重点。基本上,所有 Facebook 应用程序都包含一个运行在 Facebook.com 上并调用您的服务器上的代码的 iframe。
为与 Facebook 会话集成并使用正确的函数来访问各种功能(如列出您已经回复的朋友和事件),服务器中的代码需要遵循一些规则,但仅此而已。您可以将所有种类的功能添加到您的应用程序中,如将不同数据保存到数据库表,以便将值添加到 Facebook 体验中。                       
如果您做的正确,Facebook 用户将注册您的 Facebook 应用程序并告诉其他人该应用程序,这意味着您将需要考虑有关带宽的问题。每次您获得新用户或某人同您的应用程序交互时,Facebook 服务器会向您的服务器发出请求,所以请为此做出计划。
您可以在 Facebook 上构建什么种类的应用程序?请看一下 Facebook 开发人员展示(请参考  获得链接),您将看到数以百计的真实应用程序,它们处于各种不同的类别 — 新闻、体育、社会公益活动、公用事业、评论、本地,等等。例如,Pandora 应用程序将流行的个性化音乐服务与 Facebook 集成在一起。Facebook 用户现在可以轻松地将他们的音乐发现与他们的朋友共享并进一步个性化他们的音乐享受。同样,IMDb Facebook 应用程序允许 Facebook 用户进一步与他们喜爱的电影、演员和导演接触以及直接与 Facebook 中的朋友共享他们的想法。
SimplyHired 应用程序将 Facebook 朋友网络和推荐功能与工作搜索引擎合并在一起以便获得自定义的工作推荐。TripAdvisor 应用程序允许 Facebook 用户 “喜欢” 住所和目的地,并将他们旅行经验的关键方面与他们的朋友分享。
在本文中,仅能讲述和基本应用程序开发相关的内容,但是如果您想成为一名 Facebook 应用程序开发人员,您将要很好地研究市场并看看那里有什么。
CodeIgniter 基础知识CodeIgniter 是一个由 EllisLab 创建的 PHP 模型视图控制器 (MVC) 框架。在撰写本文时,它的版本是 1.7.2。虽然许多 MVC 框架都可用于 PHP(如 Symfony 和 CakePHP),但是区别 CodeIgniter 的主要不同之处是灵活性,源自于它的轻巧。
使用 CodeIgniter,就如同使用其他 MVC 框架一样,您要将您的代码划分为不同的功能区域:
  • 模型 包含与您的数据库和其他数据结构相关的任何及所有代码。如果您拥有一个称为 pages 的表,则您应该据有一个针对它的模型且该模型内的函数用于选择、创建、更新以及删除来自该表的记录。
  • 视图 包含所有显示和 UI 元素 — 您的 JavaScript 代码、CSS 文件、HTML 甚至 PHP。
  • 控制器 将所有内存放在一起。控制器中的每一个函数代表一个目的地或路径。如果您有一个名为 /about 的目的地,则您的控制器将有一个名为 about() 的函数。
如果您以前没有使用过 MVC 框架,则这三个要点提供了关于此组织模式背后的功能的一些信息。一旦您开始考虑 MVC 方面,那么您对 PHP 开发的观点和态度将发生根本性地改变。
例如,您要将这一切都组织到模型中,而不是在一切可用的位置存放数据库查询代码。要从您的数据库表中选择页面,您需要使用来自页面模型的函数。
同样,如果您需要更新某一页面的外观和感觉,则您要处理视图。使用控制器您就不会产生混乱。同样地,您在控制器中为应用程序添加的目的地和其他控制代码;您不在您的模型中放入这些数据。                       
与其他 MVC 框架不同,在 CodeIgniter 中,对于您的模型、表和控制器来说没有严格的命名约定。例如,您不必用复数形式 (pages) 命名表,也不必用单数形式 (page) 命名模型以便将两者关联在一起。您的数据库表也不必包含具有特定名称的特定字段:如果您没有名为 id 的主键字段,也不会有什么问题。                       
此外,您可以根据需要选择尽可能多地或尽可能少地使用框架来完成工作。通常情况下,您的应用程序将具有一系列控制器,所有的控制器都将从模型中提取数据,然后在视图中显示。不过在某些情况下,您的项目将只具有控制器和视图 — 如果您正在没有数据库后端的情况下构建静态 web 站点,这将是一个完美的解决方案。
另外一个有关 CodeIgniter 的令人感兴趣的事实是它与其他代码集成的容易程度如何。在大多数情况下,如果您想集成外部 SDK,只需通过特定的命名约定将其添加到插件(plugins )文件夹中(例如,在本文中您将 facebook.php 库文件重新命名为 facebook_pi.php),这样您就已经准备就绪了。
返回列表