[翻译]lithium 快速上手(QuickStart)
快速入门
经典博客教程
很感谢你尝试Li3!这一部分栏目为那些想了解这个框架可以做什么的php用户所设计。像这样深入代码是一种很好的方式去体会快速应用开发(Rapid Application Development)。
等到你完成了这一部分的学习你将搭建一个可以读写数据库的简单博客平台。而之后的部分栏目将解释更多细节。
配置
首先:保证你的第一个项目已经安装并且开始工作。如果你没有真正安装那还是要核实这一目录的 安装指南。 保证你接下来的每一步都是准确无误的。
等你安装所有工作以后,你应该可以通过浏览器浏览你的安装路径(比如:http://project.dev or http://127.0.0.1:8080, 剩下的博客教程假定你已经搞定了上面的工作)。然后浏览器将显示下面这样的页面片断。注意一些小细节可能和你系统设置的不太一样,但是所有的页面那些box都应该是绿色或者蓝色。如果不是的话就根据页面box下面的指引来修正。

MongoDB
当然我们博客需要一些稳定存储层。这个例子中,我们会用 MongoDB, 一个NoSQL(非关系型) 数据库。非关系型数据库的一个优点是不用制定预先的schema(模式),所以它和RAD开发方式完美的合作。
框架支持这些关系型数据库(MySQL,MariaDB,PostgreSQL,SQLite)和非关系型数据库(MongoDB,CouchDB)并且是第一个通过一个ORM模型来支持
想要初始化数据库,在mongoDB官方菜单下根据你的操作系统跟着指示一步步完成,开启数据库引擎。
为了让PHP访问mongo 你还应该安装PHP mongoDB 驱动。在mongoDB 官方文档下面的PHP驱动。驱动安装好了以后,我们重启动服务器来让修改生效。
现在,如果你刷新浏览器的页面,你应该可以看到一个律师的mongoDB 像图片下面的一样。如果你还有别的问题,那看看mongodb的开启指南是一个不错的方式。
现在我们有一个php可以访问的数据库了,然我们告诉Li3吧。通过修改项目文件 project/app/config/bootstrap/connections.php。第一,删除文件里面已经有的连接,为我们的博客添加一个新的连接:
// MongoDB Connection
Connections::add('default', array(
'type' => 'MongoDb',
'database' => 'blog',
'host' => 'localhost'
));
第一个参数仅仅知识命名来告诉别人连接什么东西罢了,li3 默认也是用 ‘default’连接除非另有说明。
第二个参数用来指定连接信息。在这个例子中,我们制定连接类型是’MongoDB’,通过域名‘localhost’服务连接数据库叫做‘blog’。这些参数可以被指定多种不同方式-看项目的文件-
/app/bootstrap/connections.php获得更多信息吧。
像这样修改bootstrap文件是一种普通方式配置li3。看boostraping 指南来获得根多配置框架的细节。
我们的应用现在可以连接MongoDB数据库服务了,所以我们开始写blog平台代码吧。
MVC 以M开始
li3用了MVC模式。如果你不熟悉web开发模式那么你等等在去看一下吧,但是现在我们先创建我们的第一个model(模型),一个提交模型用来处理博客post的域逻辑。
首先,在project/app/models/Posts.php创建一个新文件。如果你命名你的文件和结构化你的代码通过li3的惯例,核心的库代码将自动处理大量工作。这也意味着model文件本身是简单和短小的。
namespace app\models;
class Posts extends \lithium\data\Model {}
这里背后有很多工作。首先,li3知道我们用了默认的连接因为我们并没有额外指定。接着,知道我们的model命名为Posts,它将用MongoDB建立叫做‘posts’的连接。我们当然继承了很多有用的方法和操作用于处理数据库,并且在接下来的部分教程我们将学到更多有关的内容。
先休息一下,什么?schema安装?事实上,MongoDB并不要求你去一开始就是设置-仅仅等到你insert或着执行数据库处理才适当的请求。这就是RAD!
在Control层
控制器安装只是一个简单的开始。创建一个新文件在项目 /app/controllers/PostsController.php 同时写上下面的东西:
namespace app\controllers;
class PostsController extends \lithium\action\Controller {}
你应该注意到了这个细节:文件名是驼峰命名的,和类名也是。文件夹路径匹配他们各自的命名空间,并且是反斜杠。这是li3的一部分代码约定,你应该遵守它并且享受它为你带来的便利。
然后我们继续创建一个简单的活动,创建一个新的index()函数在你的新创建的控制器里面。在我们尝试连接所有的三个模型,控制器和视图,让我们简单的做个小处理输入一些假数据到view。下面是我们的做的。
namespace app\controllers;
class PostsController extends \lithium\action\Controller {
public function index() {
return array('foo' => 'bar', 'title' => 'Posts');
}
}
li3行为发送数据到view通过返回组合数组确定各自的view的变量。下面简单的例子,我们view将接受字符串‘bar’在 $foo 而且 ‘Posts’ 在 title 将被用来设置页面的标题标签)。这个设定也可以用于compact()函数。如果我有一系列的变量我喜欢这样传,像下面这样方便:
return compact('lions', 'tigers', 'bears');
待续
原文地址:http://li3.me/docs/manual/quickstart
[翻译]lithium 快速上手(QuickStart)的更多相关文章
- 快速上手RaphaelJS-Instant RaphaelJS Starter翻译(一)
(目前发现一些文章被盗用的情况,我们将在每篇文章前面添加原文地址,本文源地址:http://www.cnblogs.com/idealer3d/p/Instant_RaphaelJS_Start ...
- [译]:Xamarin.Android开发入门——Hello,Android Multiscreen快速上手
原文链接:Hello, Android Multiscreen Quickstart. 译文链接:Hello,Android Multiscreen快速上手 本部分介绍利用Xamarin.Androi ...
- [译]:Xamarin.Android开发入门——Hello,Android快速上手
返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...
- knockoutJS 快速上手
翻译:Knockout 快速上手 - 3: knockoutJS 快速上手 许多时候,学会一种技术的有效方式就是使用它解决实际中的问题.在这一节,我们将学习使用 Knockout 来创建一个常见的应用 ...
- EF Core 快速上手——EF Core 入门
EF Core 快速上手--EF Core 介绍 本章导航 从本书你能学到什么 对EF6.x 程序员的一些话 EF Core 概述 1.3.1 ORM框架的缺点 第一个EF Core应用 本文是对 ...
- Flask入门和快速上手
目录 Flask入门和快速上手 python三大主流框架对比 Flask安装 依赖 可选依赖 创建flask项目 flask最小应用--hello word 非法导入名称 调试模式 路由 唯一的 UR ...
- python的requests快速上手、高级用法和身份认证
https://blog.csdn.net/qq_25134989/article/details/78800209 快速上手 迫不及待了吗?本页内容为如何入门 Requests 提供了很好的指引.其 ...
- 第2章 初学 emWin 的准备工作及其快速上手
以下内容转载自安富莱电子论坛:http://forum.armfly.com/forum.php?mod=viewthread&tid=24552&extra=page%3D3%26f ...
- axure快速上手
Axure RP是一个专业的快速原型设计工具.Axure(发音:Ack-sure),代表美国Axure公司:RP则是Rapid Prototyping(快速原型)的缩写.Axure RP是美国Axur ...
随机推荐
- 怎么搭建DC+SCCM 域环境(一)
需要的软件: 1. SCCM 2012 SP1 2. SQL Server 2012 3. System ISO 4. ADK 环境搭建顺序: 1. 安装DC和SCCM 机器,并配置需要的IP.DNS ...
- NSInternalInconsistencyException
2016-09-10 12:48:13.281 Friend[92304:1843372] *** Terminating app due to uncaught exception 'NSInter ...
- wp8.1 页面返回 页面导航
public The_second() public second() { this.InitializeComponent(); Frame frame = Window.Current.Conte ...
- MSSQL 全表搜索 指定字符串
平时在在MSSql中查询数据的时候,想查找,某个字段在数据库中是否存在,并且查询出在哪个表中,哪个字段下面,在不知道的情况下,操作起来会很麻烦,然后就写了一个sql语句,使用起来感觉挺方便的.当然了, ...
- html5 app开发,你知道多少?
随着大量新生移动设备的兴起,改变了互联网的未来,html5技术为开发者提供了一个跨平台的移动app开发方案,并且该方案具有很好的扩展性和灵活性,但就国内使用html5开发app应用技术来讲,还是有欠缺 ...
- 关于InvokeRequired与Invoke
from:http://www.th7.cn/Program/net/201306/140033.shtml Windows 窗体中的控件被绑定到特定的线程,不具备线程安全性.因此,如果从另一个线程调 ...
- T4
Text Template Transformation Toolkit T4语法感觉有点像aspx的视图模板<% %>. 使用可以通过VS扩展和更新安装"T4 Toolbox ...
- noi 04:求整数的和与均值
04:求整数的和与均值 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 读入n(1 <= n <= 10000)个整数,求它们的和与均值. 输入 ...
- MySQL添加用户、删除用户与授权
MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 1.1 登录MYSQL: @>mysql -u root -p @&g ...
- HTML5元素、属性和格式化