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 数字出现乱码
控制面板-->区域,语言设置,简体中文(不是简体香港)
发表评论 取消回复