2、Phalcon 笔记 - 学习 Phalcon 前的心理准备
截止 2024 - 9 - 6,Phalcon 最新版本为 5.8,本系列将基于 5.8 版本编写。
本篇主旨:做好一直踩坑、解决问题的心理准备。
学习 Phalcon,是一种痛苦与快乐并存的感觉,她是天使中的魔鬼,速度中的激情。她给了我们速度的同时也给我们带来了一些麻烦的坑。
我接触 Phalcon 时的版本是 5.6,而现在的版本是 5.8。这个小版本的迭代就已经让我遇到了坑,一样的安装方式到了 5.8 就遇到了新的坑。
作为 Web 开发,我们首要的是保证业务进度的开发,而不是深入去解决某一个额外的问题。在学习 Phalcon 时,一不小心可能会逐步陷入到问题的陷阱中,导致时间也花了,问题又没有得到解决。
比如按照官方手册执行如下命令:
$ composer global require phalcon/devtools:"^5.0@dev" --dev
此时,信心满满,执行成功的,接着往下执行时,又报错了。
$ phalcon
PHP Fatal error: Uncaught Error: Class "Phalcon\Version" not found in /home/coding/.config/composer/vendor/phalcon/devtools/src/Version.php:20
这可是官方文档呀。此时,要明确我们的目标,是要安装phalcon/devtools
工具,而不是去解决工具报错的问题。
从 5.6 版本,我就知道 Phalcon 存在兼容问题,phalcon/devtools
与 phalcon
扩展版本相符合就可以解决问题。
现在到了 5.8 版本,出现了 phalcon/devtools
没有适配新版本的问题。虽然,通过 composer 指定了安装版本,但是实际的代码却是 4 版本(通过查看安装的代码):
cat Version.php
<?php
declare(strict_types=1);
namespace Phalcon\DevTools;
use Phalcon\Version as PhVersion;
class Version extends PhVersion
{
protected static function _getVersion(): array
{
return [4, 1, 0, 0, 0];
}
}
...
无论怎么安装,版本都不对,难道就没有办法了呢?
我直接到 github 克隆代码,然后根据给出的方法进行安装,此时,问题就解决了,关于具体解决方法,下篇文章讲解。
$ ./phalcon
Phalcon DevTools (5.0.0)
Available commands:
info (alias of: i)
commands (alias of: list, enumerate)
controller (alias of: create-controller)
module (alias of: create-module)
model (alias of: create-model)
all-models (alias of: create-all-models)
project (alias of: create-project)
scaffold (alias of: create-scaffold)
migration (alias of: create-migration)
webtools (alias of: create-webtools)
serve (alias of: server)
console (alias of: shell, psysh)
总而言之,要明确自己的目标,不要扩展问题。如需扩展,可以在空余的时间进行深入了解。
总结一下,学习 Phalcon 要做好如下心理准备:
- 国内外没有很多资料可查
- 出现问题只有自己去排查解决
- 如果出现问题,可能 GPT 都没法给出答案
请登录后再评论