资讯专栏INFORMATION COLUMN

教练,我想写 laravel 第一章

jerry / 2958人阅读

摘要:前言作为一个爱好者让我写我本来是拒绝的,但是呢,拒绝了谁给你工资啊那怎么办呢,既然是基于的组件化开发的,那么能不能把中的功能引入到中呢环境问题测试版和正式版的数据库一般是不同的那么如何方便的切换呢之前我才用的方法是看当前运行的文件夹是哪个就

前言

作为一个 laravel 爱好者让我写 tp3.2 我本来是拒绝的,但是呢,拒绝了谁给你工资啊
那怎么办呢,既然 laravel 是基于 composer 的组件化开发的,那么能不能把 laravel 中的功能引入到 tp 中呢

环境

tp 3.2

问题

测试版和正式版的数据库一般是不同的, 那么如何方便的切换呢?

think php

$db = strpos(getcwd(), "test") ? "db_test" : "db";
define("APP_STATUS",$db);

之前我才用的方法是看当前运行的文件夹是哪个就加载不同的文件,
这种方式的问题是你换了个文件夹名就不行了
作为 laravel 粉丝肯定是使用 env 文件

改造

通过看 laravel 的源码和官网的介绍开始进行改造 tp

step 1
composer require vlucas/phpdotenv

在 thinkphp 根目录中的 index.php 文件的头部引入

require "vendor/autoload.php"
// for use .env
$dotenv = new DotenvDotenv(__DIR__);
$dotenv->load();
step 2

在根目录新建 .env 文件

更多的使用 请参考 phpdotenv 的 github

使用更像 laravel 的 env 函数

在 composer.json 中

    "autoload": {
        "files": [
            "App/helpers.php"
        ]
    }

新建 helpers.php

function env($key, $default="undefined") {
    $value = getenv($key);
    if ($value === false) {
        return $default;
    }

    switch (strtolower($value)) {
        case "true":
        case "(true)":
            return true;
        case "false":
        case "(false)":
            return false;
        case "empty":
        case "(empty)":
            return "";
        case "null":
        case "(null)":
            return;
    }

    return $value;
}

然后执行

composer dump-autoload

然后就可以在 Conf 目录下使用了

env("DB_DATABASE")

这样配置上基本上就和 laravel 体验是一样的了
但这个东西对开发速度提升真的意义不是很大啊, laravel 中最好用的还是 ORM 啊, 下一篇将会带来 tp3.2 整合 laravel 的 ORM

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/23087.html

相关文章

  • 教练想写 laravel ORM篇

    摘要:简介对象关系映射中我认为最好用的莫过于中也有类似的东西,但是使用起来总是感觉很费力,可能是先入为主的原因吧。 简介 orm Object Relational Mapping 对象关系映射 laravel 中我认为最好用的莫过于 orm tp3.2 中也有类似的东西,但是使用起来总是感觉很费力,可能是先入为主的原因吧。 但是为了提升开发速度和减少使用 tp3.2 的不适感,现在来把 ...

    klivitamJ 评论0 收藏0
  • 成为前端,你不该学的东西,以及不该做的事儿!

    摘要:如果看视频能够成为高手,那每一个球迷都应该是梅西。克服心理障碍前端的飞速发展,不仅仅是初学者,哪怕熟手都会焦虑感觉很多东西都不会。 很多前端都想找一个学习计划,然后认真学,成为一个大牛;他们迫切的想知道自己该学什么,然后看什么书,有什么资源可以用! 我今天要告诉你的是,你不要看什么书,不要做什么事!因为如果你再不恰当的阶段,看了那些看起来很正确的金科玉律一般的书籍,除了打消你学习的兴趣...

    mcterry 评论0 收藏0
  • 【一年总结】记我的大二生活

    摘要:而过去发生的一切,恍若昨天我一直都有个计划每隔半年写一篇总结以记录我的大学生活,回看过去,总结不足,这便是我当初写这个专题的目的。在大一结束的时候,我也写过一篇一年总结记我的大一生活。 ...

    shiina 评论0 收藏0
  • 1625行,解开 underscore.js 的面纱 - 一章

    摘要:新出台的则规定,包括六种原始类型和,还有一种,详见数据类型和数据结构。用于返回一个由给定对象的所有可枚举自身属性的属性名组成的数组,。接下来判断数字进行相应的操作,其中有和两个方法,详见和。 一直想写一篇这样的文章,于是心动不如行动,这里选择的是 Underscore.js 1.8.3 版本,源码注释加在一起1625行。 Underscore.js 1.8.3 http://unde...

    MockingBird 评论0 收藏0
  • 让我们一起爱(装)上Homestead吧

    摘要:本文是实战任务管理系统一的扩展阅读原文链接欢迎作客我们的学习群先来点残酷现实真正用过的,一般不会问到底好在哪里如果你还没有爱上,只能说明一个事儿,你还没有装好爱与不爱,就差一个装字儿看了上面几条,还能偷偷笑的,基本都是会装的醒醒关于为什么要 本文是Laravel实战:任务管理系统(一)的扩展阅读原文链接; 欢迎作客我们的php&Laravel学习群:109256050 先来点残酷现实:...

    CoorChice 评论0 收藏0

发表评论

0条评论

jerry

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<