【问题标题】:About phalcon / incubator that can be used with phalcon 5.0.0 beta3关于可与phalcon 5.0.0 beta3一起使用的phalcon/incubator
【发布时间】:2023-02-02 21:23:42
【问题描述】:

我需要从 PHP 7.3 更新到 PHP 8.0 或 PHP 8.1。

关于 composer.json php 从 ~ 7.3.0 到 ^ 8.0,ext-phalcon 从 ^ 3.3.0 到 5.0.0 beta3 我想我必须更新到

我正在寻找可以与 phalcon 5.0.0 beta3 一起使用但找不到的 phalcon / 孵化器。

最新的 phalcon / incubator 似乎是 v4.0.0-alpha.7。

我尝试使用由“composer require phalcon / incubator”自动安装的 phalcon / incubator (v2.0.10)。 我收到以下错误,无法继续 use Phalcon \ Session \ Adapter \ Database as Database not found

目前还没有pha​​lcon 5.0.0 beta3可以使用的phalcon/incubator,以后会做吗?

我应该怎么办?

【问题讨论】:

  • will it be made in the future? - 如果它不会被放弃 - 是的,它会。
  • 显示你的 composer.json 。如果某些包不支持 PHP8,你无能为力,除非自己 fork 并修复它

标签: php phalcon


【解决方案1】:

我会首先看一下 phalcon/incubator-* 包,因为它们看起来更新了,并检查不同分支上的 phal-5 支持。

如果失败,您可以使用 --ignore-platform-req=ext-phalcon 安装包。

然后你需要做一些丑陋的黑客来让它工作。

很多班级都搬走了,看这里。 https://docs.phalcon.io/5.0/en/upgrade

include_once 'phalcon-4-to-5-upgrade-helper.php'

// filename : phalcon-4-to-5-upgrade-helper.php



// v4 ->    v5

namespace Phalcon {

    // PhalconCache    PhalconCacheCache
    class Cache extends CacheCache { }

    // PhalconCollection   PhalconSupportCollection
    class Collection extends SupportCollection { }

    // PhalconConfig   PhalconConfigConfig
    class Config extends ConfigConfig { }

    // PhalconContainer    PhalconContainerContainer
    class Container extends ContainerContainer { }

    // PhalconCrypt    PhalconEncryptionCrypt
    class Crypt extends EncryptionCrypt { }

    // PhalconDebug    PhalconSupportDebug
    class Debug extends SupportDebug { }

    // PhalconDi   PhalconDiDi
    class Di extends DiDi { }

    // PhalconEscaper  PhalconHtml
    class Escaper extends HtmlEscaper { }

    //PhalconException Removed
    class Exception extends Exception { }

    // PhalconFilter   PhalconFilterFilter
    class Filter extends FilterFilter { }

    // PhalconHelper   Removed in favor of PhalconSupportHelper
    class Helper extends SupportHelper { }

    // PhalconLoader   PhalconAutoloadLoader
    class Loader extends AutoloadLoader { }

    // PhalconLogger   PhalconLoggerLogger
    class Logger extends LoggerLogger { }

    // PhalconKernel   Removed
    class Kernel
    {
        public static function preComputeHashKey( string $key )
        {
            return hash('sha256', $key);
        }
    }

    // PhalconRegistry PhalconSupportRegistry
    class Registry{ 
        // cannot extend final class  PhalconSupportRegistry  or use class_alias as the class isn't user defined (it's a extension defined class))
    }
    // PhalconSecurity PhalconEncryptionSecurity
    class Security extends EncryptionSecurity { }

    // PhalconText Removed in favor of PhalconSupportHelper
    class Text extends SupportHelper { }

    // PhalconUrl  PhalconMvcUrl
    class Url extends MvcUrl { }

    // PhalconValidation   PhalconFilterValidation
    class Validation extends FilterValidation { }

    // PhalconVersion  PhalconSupportVersion
    class Version extends SupportVersion { }
}

namespace PhalconValidation {
    interface ValidationInterface extends  PhalconFilterValidationValidationInterface {}
}

// PhalconSupportHelper didnt exist for me.

namespace PhalconSupport {

    use PhalconDiInjectable;

    class Helper extends Injectable
    {
        public static function __callStatic($name, $arguments)
        {
            return (new self())->helper->$name(...$arguments);
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2016-02-25
    • 2019-01-06
    • 1970-01-01
    • 2013-09-27
    相关资源
    最近更新 更多