2、Phalcon 笔记 - 学习 Phalcon 前的心理准备

作者: 温新

图书: 【Phalcon Web 地基学习】

阅读: 105

时间: 2024-11-21 11:10:28

截止 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/devtoolsphalcon 扩展版本相符合就可以解决问题。

现在到了 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 都没法给出答案
请登录后再评论