[2023-05-20更新]接手新项目,怎么跑起来?

2023-05-20 最新进展

经过不断的折腾与摸索,根据贴子中“grubby”同志的方法,把composer.lock删掉和vendor整个删掉
再composer install,就只有报了三个问题,都是php扩展问题。
其中2个扩展开启,剩下一个是插件hhxsv5/laravel-s依赖的多线程pcntl扩展,只有linux下才能安装,所以把这个插件先删掉,composer install 顺利安装,并且php artisan serve 顺利跑起来
但结果与我用apahce直接指定public为一个网站一样,都是一片空白,连报错都没有。
但走到这步也算是一大进展。
还需要继续折腾。


初始问题描述

接手了个php项目,没有交接。Laravel版本是6.20.44,首先目标是跑起来。
写过点原生php和thinkphp,没折腾过Laravel,于是看了下文章,可以用php命行跑内置的服务器,
于是试了下,报错:
Laravel
报错的是这里:

Laravel

syntax error, unexpected ‘|‘, expecting variable,百度了下说这个运算符8.0才支持
?于是换成php8, 报了另外一个错:

Laravel
说getClass ()弃用了
老衲凌乱了,用7不支持|运算,用8却别的方法弃用,这怎么玩:joy:

另1,我用apache直接指定public目录为一个网站,访问了也是一片空白,报错都没有:pensive:
另2:我下载官网的Laravel 6.20.40 (LTS) 一键安装包下载, 用php8, php atisan serve可以跑起来

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 57

php artsion serve -vvv 可以追踪报错,看下哪些不是 vendor 目录中的。

我看 2.x 版本是有调用 getClass()。
api/Handler.php at v2 · dingo/api · GitHub

我看 dingo/api 3.x 4.x 没有使用 getClass,

方法1:

升级 dingo 到 3.x 或 4.x

方法2:

不升级应该也可以, 屏蔽报错就行

; php.ini 中修改下面的配置,屏蔽废弃提示
; 文档:http://php.net/error-reporting
error_reporting = E_ALL & ~E_DEPRECATED

刚接触推荐用 2。

10个月前 评论
vbyzc (楼主) 10个月前
vbyzc (楼主) 10个月前
kis龍 (作者) 10个月前
vbyzc (楼主) 10个月前
sanders

我猜想也可能是你使用 composer update 更新了包的版本导致的不兼容(如果composer.json里面版本要求的太宽泛)。因此如果生产环境项目可正常运行,我建议看看代码仓库中是否存在 composer.lock 文件,并使用 composer install 来执行包安装。

10个月前 评论
vbyzc (楼主) 10个月前
vbyzc (楼主) 10个月前
Adachi 10个月前
vbyzc (楼主) 10个月前
sanders (作者) 10个月前
vbyzc (楼主) 10个月前
sanders (作者) 10个月前
vbyzc (楼主) 10个月前

把前任喊回来,就说公司发金条了,把他的头摁键盘上让他跑

10个月前 评论
vbyzc (楼主) 10个月前

Laravel 6 的项目用 PHP 8 跑,过分了。

10个月前 评论
vbyzc (楼主) 10个月前
bishi123 10个月前
小李世界 (作者) 10个月前
bishi123 10个月前
vbyzc (楼主) 10个月前
grubby

都知道是版本问题了,还不简单,就用之前的环境,不要update 之来个composer install不就好了

10个月前 评论
vbyzc (楼主) 10个月前
bishi123 10个月前
vbyzc (楼主) 10个月前
bishi123 10个月前
grubby (作者) 10个月前
vbyzc (楼主) 10个月前

找一个可以快速切换版本的软件,比如phpstudy什么的,

切换一个环境删除一次vender,然后composer install,

从7.0一直往上试,一般7.2.x ,7.3.x比较多,中间的版本号大部分都是兼容的,

你这项目服务器上没有吗?不能看服务器版本?

10个月前 评论
vbyzc (楼主) 10个月前
Adachi (作者) 10个月前
Adachi (作者) 10个月前
vbyzc (楼主) 10个月前

小哥们我觉得你可以看看我的博客 :joy: 可能不太精准的适配每一个,但是这是比较通用的了 myblog.oneself.icu:10010/article/23

10个月前 评论
vbyzc (楼主) 10个月前

|符号那是指定了参数类型一般由ide生成的,直接去掉【string|\Stringable】也不影响。另外如果只是想跑起来,请按下面步骤检查下:

1、本地启动环境,建议直接用phpstudy,配置伪静态;

2、设置本地域名,指向public目录,用phpstudy->网站->创建网站;

3、导入sql,连接数据库;

4、到项目根目录下找到routes这个目录,看下路由配置,然后用域名 + 路由访问(若是admin或api路由,url需要带上admin或api);

报错不用担心就怕没有错误,备份一份代码,根据错误提示大胆改起来。

10个月前 评论
zzzzzq (作者) 10个月前
vbyzc (楼主) 10个月前
zzzzzq (作者) 10个月前
vbyzc (楼主) 10个月前

Laravel 6 不能用 PHP 8

Dingo 只能版本 2

切换到 PHP 7.4,删掉 vendor,然后安装 Dingo 2 看还有什么报错

10个月前 评论
vbyzc (楼主) 10个月前
随波逐流

composer.lock 嘛 ?

10个月前 评论
vbyzc (楼主) 10个月前
Squ1rrel

php 版本太高了,先降低到 7.* 再说

10个月前 评论
vbyzc (楼主) 10个月前

composer 可以设置php版本,你先把vendor,composer.lock删除。

composer config platform.php 7.x

然后再安装试试

10个月前 评论
vbyzc (楼主) 10个月前

6.x的环境要求:

PHP >= 7.2.5
BCMath PHP 拓展
Ctype PHP 拓展
JSON PHP 拓展
Mbstring PHP 拓展
OpenSSL PHP 拓展
PDO PHP 拓展
Tokenizer PHP 拓展
XML PHP 拓展

安装《Laravel 6 中文文档》

10个月前 评论
vbyzc (楼主) 10个月前
Hetoo (作者) 10个月前
vbyzc (楼主) 10个月前
Hetoo (作者) 10个月前
vbyzc (楼主) 10个月前

跟老板说 项目需要推到重来,这下舒服了

10个月前 评论
vbyzc (楼主) 10个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!