0.php环境搭建

单独搭建php非常麻烦,因此采用集成环境phpStudy,自带apache,mysql,nginx,php等。
编辑工具phpStorm或者vscode
composer,php包管理工具
thinkPHP,国内开源的web框架


 1.php基础学习

        php是功能强大的动态服务器脚本语言,不用编译直接运行,它强大在于web站点开发,提供了丰富的函数。ph被web服务器加载的php引擎解释执行。基础可以看php菜鸟教程或者黑马程序员PHP零基础入门到精通教程,有语言基础可以看下面是总结:
 1.1基本语法
标记

<?php code?> 
or
<script language="php"></script>

变量命名参考c语言,大小写敏感,注释参考c语言,变量可以使用中文;

分号,注释


1.2变量


局部变量定义和使用,$var = 10;
静态变量,static $var,与局部变量不同的是生命周期,局部变量在函数运行完成内存删除,使用static修饰,不会被删除。
可变变量 $$
全局变量,定义在函数外部,函数内访问使用global


超级全局变量,php语言提供
$GLOBALS,全局变量组,所有变量都可放入,在一个PHP脚本的全部作用域中都可以访问。
$_SERVER,web服务器的所有信息
$_REQUEST,用于收集HTML表单提交的数据。
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION

<?php
$x=5; // 全局变量
$y=10;function myTest()
{
    global $x;//x=5
    echo $y;//没有值
}function myTest1()
{
    static $x=0;//该行代码只执行一次
    echo $x;
    $x++;
    echo PHP_EOL;    // 换行符
}echo $_SERVER['HTTP_HOST'];echo $_POST["age"];echo $_GET["fname"]; //get cookie
echo $_COOKIE["user"];echo $_SESSION['views'];
?>


1.3 常量

1.3.1 普通常量
define,const定义,输出变量不需要$,特殊符号取值使用constant

define("GREETING", "欢迎访问 Runoob.com");echo GREETING;


1.3.2 魔术常量
php提供的预定义常量,__LINE__ __FILE__ __DIR__ __FUNCTION__(__METHOD__) __CLASS__  trait(override),__NAMESPACE__

<?php
echo '这是第 " '  . __LINE__ . ' " 行';
echo '该文件位于 " '  . __FILE__ . ' " ';
echo '该文件位于 " '  . __DIR__ . ' " ';
echo  '函数名为:' . __FUNCTION__ ;echo '类名为:'  . __CLASS__ . "<br>";
echo '命名空间为:"', __NAMESPACE__, '"'; 
?>


1.4 类型


简单类型(integer,float,string,boolean),
字符串拼接“.”,strlen();
字符串,

复杂类型(数组,对象),
### 数组,
数组 array,
关联数组(键值对),$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
二维数组 array(array(),array())
数组排序
#### 对象
定义类class Site{}
创建对象 $runoob = new Site;
调用对象函数,$hello-> sayHello()
构造函数,function __construct( $par1, $par2 ){}
析构函数,接口,继承,访问控制等参考c++;

特殊类型(NULL,Resource))获取类型 var_dump($bian);

var_dump查看变量类型和值,类型比较使用== 只比较值,用 === 比较,除了比较值还比较类型。

<?php
//简单类型
$x = 58;
var_dump($x);//输出类型和值
echo "<br>"; //数组
$cars=array("Volvo","BMW","Toyota");
var_dump($cars);//数组遍历//类
class Car
{
    var $color;
    function __construct($color="green") {
      $this->color = $color;
    }
    function what_color() {
      return $this->color;
    }
}// 实例一个对象
$herbie = new Car("white");//true,=== false
if(42 == "42") {
    echo '1、值相等';
}
?>

PHP中 比较 0、false、null、"" 松散比较true,严格比较false


1.5 函数


函数,值传递,引用传递,取地址&;

1.6 命名空间


相当于java包,c++命名空间,namespace

2. php高级


mysql,form,文件及上传等

3. php框架


ThinkPHP6.0完全开发手册
https://static.kancloud.cn/manual/thinkphp6_0/1037481
【李炎恢】【ThinkPHP6.x / PHP框架】【十天精品课堂系列】【83P / 已完结】,对着手册讲解
https://www.bilibili.com/video/BV12E411y7u8/


利用phpStudy搭建thinkphp,需要安装 composer


0.1 Phpstudy集成环境安装Composer
软件管理--》composer,安装;
phpStudy/extensions目录中,复制composer.bat 、composer.phar 两个文件到Extensions\php\php7.3.4nts 下面
Win+R 打开运行,并输入cmd,打开命令符窗口,输入composer -v 或者 php -v 命令,
配置 PATH 环境变量,“运行”输入sysdm.cpl,打开“系统属性”并切换至“高级”选项
编辑Path环境变量,E:\phpStudy\phpstudy_pro\Extensions\php\php7.3.4nts ;
 E:\phpStudy\phpstudy_pro\Extensions\composer1.8.5
 
 composer 设置阿里镜像
 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer
 查看镜像,composer config --list
    无法下载tp,还原配置,
    composer config -g repo.packagist composer https://packagist.org
composer 1.x 无法创建tp,需要升级到 2.0;
composer self-update
回滚,composer self-update --rollback

0.2 Composer创建单应用项目
单应用
稳定版安装命令: composer create-project topthink/think tp
更新thinkphp核心
composer update topthink/framework
运行 , php think run

0.3 单应用项目运行在Apache

/tp放到phpstudy的WWW目录下,新建虚拟主机指向project/public

多应用 
在单应用中,添加composer require topthink/think-multi-app,然后进行如下调整
主要区别在app目录增加了应用子目录,然后配置文件和路由定义文件都纳入应用目录下。

创建多应用模块
下载多应用模块;composer require topthink/think-multi-app


4. php练手


ThinkPHP5.1新手博客项目实战,
黑马程序员ThinkPHP开发大型商城项目实战视频,提供学习思路;
https://baitexiaoyuan.oss-cn-zhangjiakou.aliyuncs.com/updatecrm/php/20230912/p&


5. php实际项目源码阅读


勾股OA是一款基于ThinkPHP6 + Layui + MySql的OA项目,免费开源适合二开。
勾股OA部署思路
mkdir gougu;git clone;composer install;php think run;初始化
apache添加虚拟主机,并绑定pulic,访问,域名/index.php
配置pulic目录同级文件.htaccess文件,配置如下:
<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>

打开debug模式,复制.env.debug 重命名为 .env ,.env优先于Config配置;关闭删除.env

参考勾股OA在线文档
https://baitexiaoyuan.oss-cn-zhangjiakou.aliyuncs.com/updatecrm/php/20230912/p


5. 常见问题

5.1 Phpstudy解决mysql无法启动问题


原因主机安装并启动了mysql,无法启动自身集成。
直接 管理员打开cmd命令行输入:sc delete mysql 见效!
重新使用MySQL,那就重启服务。`mysqld --install`。
命令行窗口输入:net start mysql ,可以正常启动;

5.2 phpStudy 数字出现乱码

控制面板-->区域,语言设置,简体中文(不是简体香港)

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部