ThinPHP v5.x安装初始化配置(项目实战)

本地环境搭建

本地环境描述:PHPStudy v8.1 

PHP框架:ThinkPHP v5.1

phpstudy新建测试域名:www.think51.com

ThinkPHP v5.1安装(composer安装)

composer环境

composer安装:Composer 中文网 / Packagist 中国全量镜像 (phpcomposer.com)

//修改阿里云镜像
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer  
//或者中国全量镜像
composer config -g repo.packagist composer https://packagist.phpcomposer.com

安装ThinkPHP

在phpstudy环境www目录下

//第一次安装
composer create-project topthink/think=5.1.* www.think51.com
//从缓存安装
composer create-project topthink/think=5.1.* www.think51.com --prefer-dist

--prefer-dist

会从github上下载.zip压缩包,并缓存到本地。下次再安装就会从本地加载,大大加速安装速度。但她没有保留.git文件夹,没有版本信息。适合基于这个包进行开发。

--prefer-source

会从github上克隆源代码,不会在本地缓存。但它保留了.git文件夹,从而可以实现版本控制。适合用于修改源代码。

 

批量生成模块

编辑根目录build.php

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------

return [
    // 生成应用公共文件
    '__file__' => ['common.php'],

    // 定义demo模块的自动生成 (按照实际定义的文件名生成)
    'admin'     => [
        '__file__'   => ['common.php'],
        '__dir__'    => ['behavior', 'controller', 'model', 'view'],
        'controller' => ['Index', 'Manager','System', 'UserType'],
        'model'      => ['User', 'Manager','UserType'],
        'view'       => ['index/index','index/login','index/welcome'],
    ],
    'index'     => [
        '__file__'   => ['common.php'],
        '__dir__'    => ['behavior', 'controller', 'model', 'view'],
        'controller' => ['Index', 'User','UserInfo', 'UserType'],
        'model'      => ['User', 'User','UserInfo'],
        'view'       => ['index/index','index/login'],
    ],

    // 其他更多的模块定义
];

把build.php存放到application目录,执行php think build命令,批量生成模块

以下提示是没有把build.php放到application目录

在网站根目录执行php think build命令批量生成模块

>php think build

隐藏入口文件

入口文件,在网站public目录下新建.htaccess 文件
//此配置文件针对phpstudy环境,默认linux环境倒数第二行为index.php后面没有?,此配置针对phpstudy环境,其他的配置可以自行搜索。
<IfModule mod_rewrite.c>
 Options +FollowSymlinks -Multiviews
 RewriteEngine On
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>

通过phpstudy,把www.think51.com的根目录修改为www.think51.com/public

隐藏文件后,可以用phpstudy打开www.think51.com/index域名可以实现正常访问网站前台index模块。www.think51.com/admin则访问到网站后台admin模块

前台默认会访问www.think51.com/index模块/index控制器/index方法,通过www.think51.com/config.php/app.php里设置

后台输入admin访问www.think51.com/admin模块/index控制器/index方法,

在app.php默认设置里可以自行更改:

// 默认模块名
    'default_module'         => 'index',
    // 禁止访问模块
    'deny_module_list'       => ['common'],
    // 默认控制器名
    'default_controller'     => 'Index',
    // 默认操作名
    'default_action'         => 'index',

例如当前正在设置后台模块,可以把默认绑定模块名修改为admin,输入www.think51.com默认就访问admin模块了。

开启调试模式

config/app.php

// 应用调试模式
'app_debug'              => true,
// 应用Trace,TP自带调试模块
'app_trace'              => true,    

命令行创建模块/控制器/模型

创建模块

php think build --module 模块名
php think build --module admin即可。(模块名小写)

创建控制器

//php think make:controller 模块名/控制器名
php think make:controller admin/Goods 
php think make:controller admin/Login --plain
//加上 --plain 参数 表示创建没有方法的空控制器类。否则控制器类中会自带一些方法。

创建模型

php think make:model 模块名/模型名
php think make:model admin/User

开启ThinkPHP模板继承

设置完成后,导入前端模板进入进一步项目实战。

 其中控制器采用驼峰命名UserInfo.php的时候,视图需要创建user_info文件夹。

或者app/config/app.php中修改url_convert设置为false

控制器注意事项

模板输出替换

如果需要全局替换的话,可以直接在template.php配置文件中添加:

用来全局配置模板文件输出的字符串替换。本次assets为后台需要的css、js等目录包

'tpl_replace_string'  =>  [
    '__ADMIN__'=>'/assets',
    '__STATIC__'=>'/static',
]

 最后推荐一个国外前端开源UI框架

PHPStudy WWW执行以下代码:

git clone git@github.com:bopoda/ace.git acemaster
原文地址:https://www.cnblogs.com/seeding/p/15246426.html