编程

PHP静态函数回传类型:static 与 self 的差异

这是AI解释的,搬到这里来免得自己忘了。 在PHP静态方法(static method)的回传类型提示中,使用 static 和 self是两个常见的选项。它们都表示方法可能返回一个类实例,但它们在继承和多态性(Polymorphism)方面的表现有所不同。 使用 self (类型被锁定) 当在 ParentClass 中使用 : ?self 时,回传类型永远锁定为 ParentClass。 class ParentClass { // 尽管 new static() 实际创建的是 ChildClass 实例, // 但类型提示被锁定在 ParentClass。 public static function factory(): self { return new static(); } } class ChildClass extends ParentClass {} // 呼叫 ChildClass::factory() $instance
1 min read

阅是读书,历是出行

随年纪越来越大,越觉得阅读和出行的对于一个人修行的重要性。现在这个快节奏的社会的人们最大的一个问题是不能与孤独独处。一旦人们闲下来或者觉得无聊时,那么各种消极的想法就会涌现到脑海,于是我们努力着摆脱这个孤独,无论是电视,刷短视频等等,都是在让自己脱离孤独,以至于暂时逃避那些消极的想法。 最近读完的《心流》这本书,真的体会很多,非常建议看到这篇文章的你也去读一读,你会感谢我的。 这会儿我在从重庆回福州的火车上,在手机上的Ghost博客后台编写的文字。这次出行也成功说服自己入手了一台二手单反,佳能EOS 80D,配的EF-S 18-135mm镜头,接下来应该可以重新拾起摄影的热情。我是很相信命运的,如果没有这次的出行,可能买相机的执行力还要拖延很久,拖延原因是不知道选哪个型号,以及是否购买新机还是二手。 有几年没用相机了,不过之前用的也是佳能型号,所以设置熟悉起来相对容易些,在奉节三峡之巅和白帝城拍了一些。 图揽:三峡之巅,白帝城佳能EOS 80D,单色和彩色原图。Brandon ZhangBrandon Zhang 写着写着好像博客正文和标题并不是很搭配,不过无所谓了,本博客主
2 min read
给Ghost Gallery组件增加放大图标
Ghost

给Ghost Gallery组件增加放大图标

Ghost Gallery组件在移动端的样式和桌面端的样式一致,这样在手机上看图片过于小,不过它支持lightbox功能,点击图片可以放大,所以问题不是很大,但是可能很多用户不知道点击图片来放大查看,例如这位朋友所提交的issue一样:https://github.com/TryGhost/Casper/issues/948 我也在issue底部留言的我的个人解决方案,就是在图片右上角增加一个放大图标,提醒用户图片是可以点击来放大查看的,CSS代码在issue留言中已经说了,就是几行简单的代码。 <style> .kg-gallery-image { position: relative; &::after { content: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdH
2 min read
太姥山之行
旅行

太姥山之行

9.19 中午到的太姥山站,出站后转8路公交车到太姥山游客中心。淡季门票90元,我以为宁德户口有优惠,结果没有。 景区出来后,到镇上找了一家饭店,吃的炒溜溜粉。 其实应该吃个锅边的,店门口正在做锅边。 一看颜色就知道是纯的地瓜粉做的,味道应该和老家一样。 晚饭后等不到公交车于是打车到的火车站前往温岭。 9.20 今天早上去逛了温岭市博物馆,看到了一个国宝重器,温岭下面一个村出土的商代的蟠龙纹青铜盘。 不过居然发现这个国宝旁边的英文介绍标签,居然把英文单词dynasty给拼错了。 博物馆逛完在附近找了一家面店吃的特色姜汤面,有鱼有虾,虽然价格38元挺贵,不过味道确实很不错的。 午饭后走到一个公园,在湖边休息和看书。 9.21 早餐吃的当地嵌糕,其实很和平常见到那种山东煎饼差不多,只是这个嵌糕不是煎的,有点类似米糕的感觉,不过不是很吃的惯。
2 min read
个人项目该怎么开展比较合适?
编程

个人项目该怎么开展比较合适?

平常工作期间写公司项目的业务需求,都是有一个明确的scope,准确的知道完成任务是什么样的一个状态,完成一个需求就会有满足感,然后提交到代码评审,评审过了再提交给测试,有一个完成的多人参与的一个流程,这样的话我们潜意识里觉得是成功的完成了一个业务需求,对自己的付出做出一个肯定,从而刺激我们的大脑,说好样的,而且也不会感到疲惫或者困惑。 那么对于个人项目,这其中的区别就很大了,不知道这个是否适应于所有人,起码对于我自己而言,刚开始一个个人项目的时候激情满满,好像一坐下来可以写大半天不休息的那种,但是随着项目越写越复杂,激情在渐渐减弱,这种减弱不是说对项目不感兴趣了,而是我们并没有很好的一个规划,一直处于写的状态,然后没有给自己做一个清晰的规划,到底写到哪里算是完成今天的任务,久而久之我们的大脑就会不适应,达到不了写公司项目的那种刺激,而且写个人项目仅仅是个人参与,没有其他人的正面反馈,那么这其中就很需要将这个项目scope做一个完整且清晰的规划,比如今天写哪个需求,写到哪里算结束,然后写好了怎么鼓励自己,而且可以达到一个有效的循环,而不至于导致burnout,这是很值得思考的一个问题。
3 min read
添加事件勾子
编程

添加事件勾子

WordPress中最强大的概念是有许多的勾子供开发者来修改特定的值,然后我记得前段时间看lit作者在油管上面的一个视频讲到在JavaScript中我们也可以创建一个简单的事件勾子,比如下面这段代码,在我们使用newTaskName 前,我们先发送一个自定义事件,允许项目中的其他代码,或者插件(如果你是写库给别人用)来修改我们这边的待办事项名称。 /** * Handles editing a task. * * @param {CustomEvent} event - The custom event that triggered the function, containing task details. * * @returns {Promise<void>} - A promise that resolves when the task is updated or an alert is shown on failure.
1 min read
从Docker Desktop迁移到ObrStack
编程

从Docker Desktop迁移到ObrStack

切换到旧项目文件夹,备份数据库。 ddev export-db --gzip=false > db.sql 退出Docker Desktop,接着创建新的项目地址 ~/codes/ddev/new-project-folder,启动ObrStack程序,然后运行。 // https://ddev.readthedocs.io/en/stable/users/quickstart/#wordpress ddev config --project-type=wordpress ddev start ddev wp core download 导入数据库 将数据库文件转移至当前文件夹,然后导入数据库。 ddev import-db < db.sql 或者直接在file参数上指向到旧项目数据库文件位置。 ddev import-db --file=../old-project-folder/db.
1 min read
社交媒体玩的越少,心里越健康
随想

社交媒体玩的越少,心里越健康

从前几年听过的几个TED Talks,了解到社交媒体怎么影响个人的心里健康,以及影响到人与人之间的相处关系,我便有意识的减少自己的社交媒体使用量,不过我不算使用频繁的,因为最严重的问题是朋友圈发的比较多,不过没有刷短视频以及没有玩微博。 再后面从我第一家tech公司的两个老板那里听到说:Social media is such a cancer(社交媒体简直是癌症),更进一步加深了我对社交媒体的了解。我的两位老板没有任何的社交媒体,住在悉尼的郊区的一栋房屋,养着一条大狗,通过和他们的接触,虽然不是特别熟悉,但我觉得他们是很享受当下的状态的。我自己通过这几年的训练,我现在朋友圈发的越来越少了,主要发的时候是自己出去旅行的时候,同时可以控制到几周看一次朋友圈这样,跟以前相比有了很大的提升,自我评价是整个人心静下来了,没有那么浮躁。也不知哪一刻开始,突然发现自己可以静下心来看书了,不管是多么嘈杂的场合,我想这是我从前不敢想的。 2021年开始在bilibili投稿前端视频,社交媒体使用量增加了一些,因为需要回复分析的一些留言和私信,不过我是关闭消息通知,且尽量做到通过电脑版来回复信息,手
4 min read
旧式火车希望可以保留
旅行

旧式火车希望可以保留

今天搭乘鹰潭到景德镇的绿皮火车,订的座票,但却是卧铺车厢的。入座后看到一位小女孩和两位大学生在聊天,聊的很好玩。起初我以为他们是亲戚,听她们聊天后才知道是火车上刚认识,她们互问一些好玩且很冷的脑经急转弯,我忍着控制不笑有点难受哈哈。 我观察这个小孩应该上小学三四年级左右,而且还应该是不刷短视频的,因为一路上没有用手机,应该也和家乡不给她手机也有关系。旧式火车座位是面对面的,如果旅途中能碰见聊得来的人,一路上应该挺愉快的。说到这里让我想起在瑞士坐火车去Interlaken时,上面的火车也有面对面座位的,然后遇到陌生人就可以随时聊起来。 现在我们的高铁和动车座位都是朝一个方向,就不具备这样的基础条件了,速度快了,但是人情味少了。后来知道小姑娘的妈妈是幼儿园老师,应该是家教还不错。 更新:高铁也有少数座位是面对面的。
1 min read