欢迎各位兄弟 发布技术文章
这里的技术是共享的
为了对 Yii 有个初步认识,我们在本节讲述如何建立第一个 Yii 应用。我们将使用强大的 yiic 工具,它用来自动生成各种代码。为方便起见,我们假定 YiiRoot 为 Yii 的安装目录, WebRoot 为 WEB 服务器的的目录 在命令行运行 yiic,如下所示: % YiiRoot/framework/yiic webapp WebRoot/testdrive 注意: 在 MacOS、Linux 或 Unix 系统中运行 yiic 时,你可能需要修改 yiic 文件的权限使它能够运行。此外,也可以这样运行此工具: % cd WebRoot/testdrive % php YiiRoot/framework/yiic.php webapp WebRoot/testdrive 这将在 WebRoot/testdrive 目录下建立一个最基本的 Yii 应用,许多Yii 应用都有着和这个应用相同的目录结构 不用写一行代码,我们可以在浏览器中访问如下 URL 来看看我们第一个 Yii 应用: http://hostname/testdrive/index.php 正如我们看到的,这个应用包含四个页面:首页、关于我们、联系我们、登录。联系我们显示了一个表单,以让用户输入并提交给网站管理员,登录页面允许用户先通过认证然后访问已授权的内容。查看下列截图了解更多: 下面的树图为我们描述了这个应用的目录结构。请查看Conventions以获取该结构的详细解释。 连接到数据库 大多数 Web 应用都需要数据库支持,我们的测试应用也不例外。要使用数据库,我们首先需要告诉应用如何连接它。修改应用的配置文件 WebRoot/testdrive/protected/config/main.php 即可,如下所示: 上面的代码告诉 Yii 应用在需要时将连接到 SQLite 数据库 WebRoot/testdrive/protected/data/testdrive.db 。注意这个SQLite 数据库已经包含在我们创建的应用框架中。数据库只包含一个名为tbl_user的表: 若你想要换成一个 MySQL 数据库,你需要导入文件 WebRoot/testdrive/protected/data/schema.mysql.sql 来建立数据库。 注意: 要使用 Yii 的数据库功能,我们需要启用 PHP 的 PDO 扩展和相应驱动的PDO扩展(To use Yii's database feature, we need to enable PHP PDO extension and the driver-specific PDO extension.)。对于测试应用来说,我们需要启用 php_pdo 和 php_pdo_sqlite 扩展。 实现 CRUD 操作 激动人心的时刻来了。我们想要为刚才建立的 User 表实现 CRUD (create, read, update 和 delete) 操作,这也是实际应用中最常见的操作。我们使用 yiic 工具来帮助我们生成需要的代码,而不再去写一些繁琐的代码,这个过程通常称为“脚手架”。 打开一个命令窗口,执行如下命令 % cd WebRoot/testdrive % protected/yiic shell Yii Interactive Tool v1.1 Please type 'help' for help. Type 'exit' to quit. >> model User tbl_user generate models/User.php generate fixtures/tbl_user.php generate unit/UserTest.php The following model classes are successfully generated: User If you have a 'db' database connection, you can test these models now with: $model=User::model()->find(); print_r($model); >> crud User generate UserController.php generate UserTest.php mkdir D:/testdrive/protected/views/user generate create.php generate update.php generate index.php generate view.php generate admin.php generate _form.php generate _view.php Crud 'user' has been successfully created. You may access it via: http://hostname/path/to/index.php?r=user 如上所示,我们使用 yiic 的 shell 命令来和我们刚才建立的应用进行交互。在提示符后面,我们执行了两个子命令model User tbl_user 和 crud User。前一个命令为tbl_user表生成了名字为User的模型类,后一个命令分析User数据模型,产生代码来实现相关的CRUD操作。 注意:或许你会看到类似"...could not find driver"的错误,尽管需求检查显示你已经启用了PDO扩展和相关的PDO驱动,如果这样,你可以尝试如下执行yiic 工具 % php -c path/to/php.ini protected/yiic.php shell path/to/php.ini 代表正确的 PHP ini 文件地址 让我们看看成果,访问如下 URL: http://hostname/testdrive/index.php?r=user 会显示一个 tbl_user 表中记录的列表。因为我们的表是空的,现在什么都没显示。 点击页面上的 Create User 链接,如果没有登录的话我们将被带到登录页。(demo/demo) 登录后,我们看到一个可供我们添加新用户的表单。完成表单并点击 Create 按钮,如果有任何输入错误的话,一个友好的错误提示将会显示并阻止我们保存。回到用户列表页,我们应该能看到刚才添加的用户显示在列表中。 重复上述步骤以添加更多用户。注意,如果一页显示的用户条目太多,列表页会自动分页。 如果我们使用 admin/admin 作为管理员登录,我们可以在如下 URL 查看用户管理页: http://hostname/testdrive/index.php?r=user/admin 这会显示一个包含用户条目的漂亮表格。我们可以点击表头的单元格来对相应的列进行排序,而且它和列表页一样会自动分页。 实现所有这些功能不要我们编写一行代码! |