首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel 5.3之 Query Builder 源码解析(中)

Connection::select()执行的,之前的Laravel版本是没有封装在闭包里而是先执行了连接操作,Laravel5.3是封装在了闭包里等着执行SQL语句再连接操作,应该是为了提高效率。...{ // 使用extract()函数来读取一个关联数组,如['host' => '127.0.0.1', 'database' => 'homestead'] /...createConnection($dsn, $config, $options),该方法实例化了一个PDO,这里就明白了Query Builder也只是PDO基础封装的一层API集合,Query...Connection::select()执行的,之前的Laravel版本是没有封装在闭包里而是先执行了连接操作,Laravel5.3是封装在了闭包里等着执行SQL语句再连接操作,应该是为了提高效率。...createConnection($dsn, $config, $options),该方法实例化了一个PDO,这里就明白了Query Builder也只是PDO基础封装的一层API集合,Query

3.4K31

Laravel 5.3之 Query Builder 源码解析(中)

实际,上篇已经聊到Query Builder通过连接工厂类ConnectionFactory构造出了MySqlConnection实例(假设驱动driver是mysql),该MySqlConnection...开发环境:Laravel5.3 + PHP7 数据库连接器 连接工厂类ConnectionFactory中通过简单工厂方法实例化了MySqlConnection,看下该connection的构造函数:...Connection::select()执行的,之前的Laravel版本是没有封装在闭包里而是先执行了连接操作,Laravel5.3是封装在了闭包里等着执行SQL语句再连接操作,应该是为了提高效率。...{ // 使用extract()函数来读取一个关联数组,如['host' => '127.0.0.1', 'database' => 'homestead'] /.../ 则 $host = '127.0.0.1', $database = 'homestead', 很巧妙的一个函数 extract($config, EXTR_SKIP);

3.2K31
您找到你想要的搜索结果了吗?
是的
没有找到

Laravel 数据库连接配置和读写分离

今天开始讲如何在 Laravel 中操作数据库,Laravel 为我们提供了多种工具实现对数据库的增删改查,我们使用 Laravel 提供的这些数据库工具之前,首先要连接到数据库。...', 'mysql'), 当然,默认数据库连接、数据库名称以及数据库用户名和密码等敏感信息都保存到 .env 文件中了,然后通过 env 辅助函数读取: DB_CONNECTION=mysql DB_HOST..., ], 然后 .env 中新增对应配置项: DB_CONNECTION_OLD=mysql DB_HOST_OLD=mysql DB_PORT_OLD=3306 DB_DATABASE_OLD=laravel56...connection 属性: protected $connection = 'mysql_old'; 这样,模型类执行查询、插入等操作时都会使用这个 mysql_old 数据库连接。...->get(); DB::connection('write')->table('users')->insert(...); 如果通过 Eloquent 模型类调用的话,还可以这么指定: User::

5.2K20

Laravel 5+ .env环境配置文件详解

我们开发的时候,有时候我们希望不同的环境中有不同的配置参数,举例来说,你希望生产环境使用的缓存机制与本地环境不同。 要实现这个目的,Laravel使用了DotEnv这个PHP库。...         MAIL_PASSWORD=null         MAIL_ENCRYPTION=null         PUSHER_APP_ID=         PUSHER_APP_KEY...= DB_CONNECTION指的是我们的数据库连接种类,这个值config/database.php中connections数组中被定义: 'connections' = [...Homestead开发环境下,默认的MySQL用户名为homestead,密码为secret。...好了,本文主要讲解了Laravel 5+ .env环境配置文件的各项含义与使用方法,更多源于Laravel框架的使用技巧请查看下面的相关链接

2.1K20

Windows 如何安装Homestead

官网 下载完成之后,双击安装包进行安装,默认下一步就可以,当然你也可以更换系统盘符 安装 Vagrant Vagrant 官网 同样傻瓜式直接下一步即可 ==以上两个软件安装 Windows可能弹出需要管理员运行等操作...最好将各种杀毒软件关掉)== 安装Git Windows 上有一个图形化界面可以下载安装 Git客户端 安装好他你只需要使用他的命令行操作即可,不要使用他的图形化界面,难用的要死 另外 Windows 推荐一款软件...://github.com/laravel/homestead.git Homestead 接着 cd Homestead git checkout v6.1.0 init.bat 基于以上 Hmoestead...就安装成功了,接下来进行配置 配置 Homestead.yaml 文件 配置之前,我们先在任意磁盘 新建一个文件夹 Code,用来存放我们的 PHP代码,比如 laravel等 cd D:\php...Homestead 可以同时为多个 Laravel 应用提供虚拟化环境: sites: - map: laravel-blog.test to: /home/vagrant/Code

2.3K20

Laravel 4 小技巧两则

// 该函数的签名: public function controller($uri, $controller, $names = array()) // 不命名一般使用: Route::controller...根据系统变量判断当前运行环境 系统默认的判断是否本地环境的方法是根据 'local' 数组中指定一组作为本地环境的主机名,比如在办公机、Macbook都要做开发,你就要把两个主机名都写进去,我觉得这样很麻烦...改成了根据 $_SERVER['LARAVEL_ENV'] 来判断,这样我可以在所有开发机中都定义 'LARAVEL_ENV' 的环境变量,值为 'local',于是开发机就会自动识别为 'local...getenv('LARAVEL_ENV') : array( 'local' => array('homestead') ); return $_env; }); // 这实际是去读取...$_SERVER['LARAVEL_ENV'] 的值 // Apache 中,可以用 SetEnv 设置, // Nginx 中,可以用 fastcgi_param 设置

1.1K50

mac开发php集成环境「建议收藏」

我是一个使用 mac 开发的 phper ,虽然使用 mac 开发也就不到一年,但是 mac 的一些技巧还是掌握的不错的,但实际开发中光有操作技巧是不行的,环境的效率也是很重要的,因为之前一直使用 homestead...虚拟机,刚开始还没感觉它有多慢,但是后来感觉 homestead 真是太慢了,当然这可能也跟电脑的性能有关,我经常启动好几个虚拟机,在上面跑 windows 系统。...但无论如何,它的速度太慢了,请求时间、打开速度起码都在 3s 以上,虽然它可以使本地的开发环境和线上一致,以免开发中因为服务器环境导致报错,但是还是不得不打算放弃它,因此我想在mac直接搭建开发环境...,开始了解到 valet ,不得不说,valet 的确是一个轻量级的 laravel 本地开发环境,为什么说 laravel 呢,因为它基本是为 laravel 定制的开发环境,虽然也支持 cakephp...,我了解的有 MAMP 、XAMPP 这两个,MAMP 是收费的,也有免费版的,免费版的我也用过,但是整个界面看上去很乱,一个不会英语的开发使用起来比较困难,果断卸载,然后安装 XAMPP ,但是安装之后发现功能又太少

5K10

Laravel源码解析之ENV配置

Laravel启动时会加载项目中的 .env文件。对于应用程序运行的环境来说,不同的环境有不同的配置通常是很有用的。...自定义env文件的路径与文件名 env文件默认放在项目的根目录中, laravel 为用户提供了自定义 ENV 文件路径或文件名的函数, 例如,若想要自定义 env 路径,可以 bootstrap 文件夹中...file函数将配置从文件中一行行地读取到数组中去,然后排除以 #开头的注释,针对内容中包含 =的行去调用 setEnvironmentVariable方法去把文件行中的环境变量配置到项目中去: namespace...- "DB_PORT=3306" - "DB_HOST=database" 这样容器里设置好环境变量后,即使 env文件里的 DB_HOST为 homestead用 env函数读取出来的也还是容器里之前设置的...项目中读取env配置 Laravel应用程序中可以使用 env()函数去读取环境变量的值,比如获取数据库的HOST: env('DB_HOST`, 'localhost'); 传递给 env 函数的第二个值是

2.1K20
领券