导航菜单

Typecho 1.2 迁移到 PHP 7.2,更换了ident,所以以前很多资源都存在多多少少的问题。博主赶紧升级到最新的 beta,好打磨打磨本站的资源。

首先是 config.inc.php

非新装用户需要手动修改config.inc.php,下面是新版config.inc.php,手动改一下数据库连接信息即可。

<?php
// site root path
define('__TYPECHO_ROOT_DIR__', dirname(__FILE__));
// plugin directory (relative path)
define('__TYPECHO_PLUGIN_DIR__', '/usr/plugins');
// theme directory (relative path)
define('__TYPECHO_THEME_DIR__', '/usr/themes');
// admin directory (relative path)
define('__TYPECHO_ADMIN_DIR__', '/admin/');
// register autoload
require_once __TYPECHO_ROOT_DIR__ . '/var/Typecho/Common.php';
init\Typecho\Common::init();
// config db
$db = new \Typecho\Db('Pdo_Mysql', 'test_');
$db->addServer(array (
  'host' => '127.0.0.1',
  'port' => '3306',]
  'user' => 'root',
  'password' => 'root', 
 'charset' => 'utf8mb4',
  'database' => 'test',
  'engine' => 'InnoDB',
), \Typecho\Db::READ | \Typecho\Db::WRITE);
\Typecho\Db::set($db);

然后就是头痛医头脚痛医脚

直接打开网页,就是提示那里报错那里不能用。

getRequestUri 变 Private

一上来就给我来了个Call to private method Typecho\Request::getRequestUri() from global scope

Typecho\Request 动刀了
22:49 刚刚更新修复了

解决办法也简单

<?php
$requestUri = parse_url(Typecho_Request::getInstance()->getRequestUrl())['path']

adminUrl 变动

$options->adminUrl()输出缺少/

Path '/adminwrite-post.php' not found

得手动加上了

$options->adminUrl('/write-post.php');

数据库操作变动

之前使用以下代码获取数据库配置,1.2.0 beta 会报错Missing Database Object

$dbConfig = $db->getConfig()[0]

因为新版修改了getConfig方法,查看代码,兼容方法为

if (class_exists('Typecho\Db')) {
    $dbConfig = $db->getConfig($db::READ);
} else {
    $dbConfig = $db->getConfig()[0];
}

默认主题白屏

因为要适配插件,为了避免主题影响我更换回默认主题,结果前台白屏。

[08-Sep-2021 23:14:33 Asia/Shanghai] PHP Fatal error:  Allowed memory size of 268435456 bytes exhausted (tried to allocate 12599296 bytes) in E:\WorkSpace\development\wwwroot\var\Widget\Metas\Category\Rows.php on line 220
[08-Sep-2021 23:16:07 Asia/Shanghai] PHP Fatal error:  Allowed memory size of 268435456 bytes exhausted (tried to allocate 13340704 bytes) in Unknown on line 0

怀疑是 Typecho 的 BUG,估计得等joyqi修复了。

2021.09.09 已经修复了

插件钩子失效

Widget_Abstracts_Contents->pluginHandle()->contentEx接口失效。

已经确认是 bug,该 bug 涉及多个接口,已修复。

异步服务无法调用(评论邮件提示插件用不了)

目测是BUG,手动改成非异步调用是可以使用的