Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

谁在使用? #7

Open
CodFrm opened this issue Sep 15, 2023 · 14 comments
Open

谁在使用? #7

CodFrm opened this issue Sep 15, 2023 · 14 comments

Comments

@CodFrm
Copy link
Member

CodFrm commented Sep 15, 2023

如果已经用上了,可以在下方留言并留下论坛地址,方便了解大家的使用场景,以便我们后续不断迭代优化。😊

discuz商场已上架,愿意赞助的可以购买一下

https://addon.dismall.com/plugins/codfrm_markdown.html

@ijrou
Copy link

ijrou commented Sep 18, 2023

手机端解决了吗?我记得手机端进入编辑器时会提醒不支持手机端,让跳转到电脑

@CodFrm
Copy link
Member Author

CodFrm commented Sep 19, 2023 via email

@CodFrm CodFrm pinned this issue Sep 27, 2023
@CodFrm CodFrm changed the title discuz商场已上架,愿意赞助的可以购买一下 谁在使用? Sep 27, 2023
@xdingya
Copy link

xdingya commented Feb 28, 2024

想使用,无奈于199!

@xdingya
Copy link

xdingya commented Feb 28, 2024

是否考虑降价?

@CodFrm
Copy link
Member Author

CodFrm commented Feb 28, 2024

28J4PPAF06UPYKWLURA3Z
28J4LICPAQSCXPFMIHBWM
28J4VDXIH2AI4BKJUSYMV
28J4BVLDKUQGUZ7CEP5RN
28J4IB18AKAHSG8K9QSCV

放了5个-100的优惠券,用了的可以说一声 @xdingya ,不考虑降价

@panjianning
Copy link

我在用 https://www.tinygimp.com

  1. readme中,安装步骤还差一个 yarn build
  2. 自定义表情在最新版discuz中有报错,
    emoji.inc.php在最新版会报错,原因是table_custom_emoji.php中继承discuz_table时delete函数签名不对?

我改成这样ok了,https://github.com/panjianning/dz_markdown/blob/main/src/emoji.inc.php

@CodFrm
Copy link
Member Author

CodFrm commented Jul 12, 2024

@panjianning 感谢哥哥,哥哥可以直接pr

我暂时没看见报错,哥哥是什么版本的discuz

@panjianning
Copy link

@panjianning 感谢哥哥,哥哥可以直接pr

我暂时没看见报错,哥哥是什么版本的discuz

我用的版本是这个 Discuz! X3.5 Release 20231221

@panjianning
Copy link

panjianning commented Jul 15, 2024

我这版本disuz_table delete方法是这样的

	public function delete($val, $unbuffered = false) {
		$ret = false;
		if(isset($val)) {
			$this->checkpk();
			$ret = DB::delete($this->_table, DB::field($this->_pk, $val), null, $unbuffered);
			$this->clear_cache($val);
		}
		return $ret;
	}

这里这样override会不会有问题? https://github.com/scriptscat/dz_markdown/blob/main/src/table/table_custom_emoji.php#L33

@CodFrm
Copy link
Member Author

CodFrm commented Jul 15, 2024

@panjianning

QQ_1721050306123

我也是呀,我在我的论坛中测试,并未出现

    public function deleteRecord($uid, $url)
    {
        return DB::delete(
            $this->_table,
            DB::field('uid', $uid) . ' AND ' . DB::field('url', $url)
        );

    }

我不知道DB::field的用法,但是感觉会比我的方法有更高的sql注入风险

@panjianning
Copy link

panjianning commented Jul 16, 2024

那我就不清楚了,不怎么会php, 我这就是得改这个函数的签名https://github.com/scriptscat/dz_markdown/blob/main/src/table/table_custom_emoji.php#L33才不报错

部署是nginx + php8.1好像

我改成叫deleteRecord正是因为我觉得delete与父类方法不一致,就改成了个特别的名字来用

@panjianning
Copy link

我问gpt4, 好像是和php版本有关,总之这个签名还是改一下为好吧

php中, 子类的方法delete($uid, $url)可以override父类中的方法delete($val, $unbuffered = false)吗 ,会不会报错

在旧版本的PHP中(特别是在PHP 5之前),对方法重写(覆盖)的限制比较宽松。你可以在子类中改变方法的参数数量和类型,而不会引发错误。然而,从PHP 5开始,增加了对面向对象特性的支持,包括更严格的检查方法签名以支持多态。

在PHP 7及更高版本中,如果启用了严格模式(通过声明 declare(strict_types=1);),那么任何与父类方法签名不一致的重写都可能导致类型错误。PHP 5引入的类型提示和返回类型声明在PHP 7中被进一步强化。

总结来说:

  • PHP 4及更早: 几乎没有对方法重写的限制。
  • PHP 5: 引入了更多面向对象的特性,开始要求方法重写遵守父类的方法签名。
  • PHP 7和更高版本: 在严格模式下,对方法签名的一致性要求更加严格。

因此,是否会报错取决于你使用的PHP版本以及是否有启用严格模式。在编写面向对象的PHP代码时,为了维护良好的兼容性和未来的可维护性,建议尽量保持方法签名的一致性,尤其是当使用PHP 5及以上版本时。

@CodFrm
Copy link
Member Author

CodFrm commented Jul 16, 2024

这是我的部署文件,使用的是php7: https://github.com/scriptscat/dz_markdown/blob/main/build/docker/Dockerfile

确实是覆盖了继承的delete方法,我也好久没写php了,这个不太清楚了

哥哥那边修改方法签名,不修改方法逻辑可以么?

@Chihaya-Yuka
Copy link

一个基于 discuz 的同人小说接力网站。

https://para.duowan.click/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants