Zend Framework 2 入门实例-Mysql数据库链接
来源:互联网 发布:模拟城市mac版 编辑:程序博客网 时间:2024/05/18 12:01
Zend Framework 2 入门实例-Mysql数据库链接
本文在Zend Framework 2 入门实例的基础上构建
Step 1:
在全局配置文件中配置数据库链接信息,以及ZF2的数据库适配器
( path: /config/autoload/global.php )
return array( 'db' => array( 'driver' => 'Pdo', 'dsn' => 'mysql:dbname=YOUR DBNAME HERE;host=localhost', 'driver_options' => array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\'' ), ), //数据库适配器 'service_manager' => array( 'factories' => array( 'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory', ), ),);
Step 2:
配置数据库访问帐号和密码
建立文件config/autoload/local.php,并填写数据库用户名以及密码
array( 'username' => 'YOUR USERNAME HERE', 'password' => 'YOUR PASSWORD HERE', ),);
Step 3.1:
此时就可以访问数据库并进行操作了
本演示和官方手册一样试用TableGatway来进行数据库操作
在此之前我在数据库中建立了一张用户表用于演示
Step 3.2:
建立文件User.php ( path: /module/Helloword/src/Helloword/Model/User.php)
<?php namespace Helloword\Model; class User { public $id; public $name; public function exchangeArray($d) { $this->id = (isset($d['id'])) ? $d['id'] : null; $this->name = (isset($d['name'])) ? $d['name'] : null; }}
建立文件UserTable.php ( path: /module/Helloword/src/Helloword/Model/UserTable.php)
<?php namespace Helloword\Model; use Zend\Db\TableGateway\TableGateway; class UserTable { protected $tableGatewat; public function __construct(TableGateway $tableGatewat) { $this->tableGatewat = $tableGatewat; } /** * 根据传入的id获取用户信息 * * @param int $id 用户id */ public function getUser($id) { try { return $this->tableGatewat->select(array('id' => $id)); } catch (\Exception $e) { } }}
Step 3.3
接下来我们就可以通过上面的类获取用户信息了,在zf2中,为我们提供了更方面的调用类的方式
在Module.php ( path: /Module/Helloword/Module.php )中添加:
<?phpnamespace Helloword;use Zend\Db\ResultSet\ResultSet;use Zend\Db\TableGateway\TableGateway;use Helloword\Model\User;use Helloword\Model\UserTable;class Module{ ... public function getServiceConfig() { return array( 'factories' => array( 'Helloword\Model\UserTable' => function($sm) { $tableGateway = $sm->get('UserTableGateway'); $table = new UserTable($tableGateway); return $table; }, 'UserTableGateway' => function ($sm) { $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter'); $resultSetPrototype = new ResultSet(); $resultSetPrototype->setArrayObjectPrototype(new User()); return new TableGateway('user', $dbAdapter, null, $resultSetPrototype); }, ) ) }}
接下来就可以在控制器中用ZF2的Services来调用UserTable类了
<?phpnamespace Helloword\Controller;use Zend\Mvc\Controller\AbstractActionController;use Zend\View\Model\ViewModel;class HellowordController extends AbstractActionController{ protected $userTable; public function indexAction() { $resSelectUser = $this->getUserTable()->getUser(1); $resCurrent = $resSelectUser->current();return new ViewModel(array('hello' => 'hi'.$resCurrent->name)); } public function getUserTabel() { if (!$this->userTable) { $sm = $this->getServiceLocator() $this->userTable = $sm->get('Helloword\Model\UserTable'); } return $this->userTable; }}
0 0
- Zend Framework 2 入门实例-Mysql数据库链接
- Zend Framework 2 入门实例-Sql Service(MSSQL)数据库链接
- Zend Framework 2 Helloword 入门实例
- 【ZF2】Zend Framework 2 Helloword 入门实例
- zend framework入门2
- zend framework操作mysql数据库
- zend framework整合mysql数据库
- Zend Framework 2 学习教程链接
- zend framework 中的链接
- Zend Framework 2 Sql Service(MSSQL)数据库链接,其它架构方法类似
- Zend Framework使用实例
- Zend Framework使用实例
- zend framework 实例
- Zend Framework 2 入门-视图(View)
- Zend Framework 2 入门-数据分页-pagination
- Zend Framework 2 入门-发送邮件
- Zend Framework 2 入门-路由-route
- Zend Framework 2 入门 文件上传
- hdu 3507 斜率优化DP入门题
- ReactiveCocoa Weak-Strong Dance
- Java将域名转换成IP
- hdu - 3498 - whosyourdaddy(重复覆盖DLX)
- 2014-10-27Android学习------SQLite数据库操作(二)-----数据库的创建--SQLiteHelper extends SQLiteOpenHelper
- Zend Framework 2 入门实例-Mysql数据库链接
- ExtJS表格的操作:取选择项
- oracle查看和修改最大连接数
- 早安心语:微笑有时候说明你很坚强
- redis设计思想
- 关于Android资源文件中出现百分号的问题
- Android 5.0 12大新功能详解
- HDU 4990 Reading comprehension(矩阵快速幂优化)
- CentOS、Ubuntu、Debian三个linux比较异同