ColaPHP 2.0α发布
框架文件大小从188KB精简到131KB,代码量减少30%,基本功能没有减少,主要归功于将很多成员变量public化,大大减少了set/get方法,另外就是重构了一些代码,尤其是一些以前有点看不下去又不能大改的代码。
还有一个明显的变化是把Com改到Ext,以前的想法是组件化(Component),有朋友反馈Com含义不明确容易误解,我也自觉组件这个词太大了,就改名Ext(扩展 Extension),简单一点,核心+扩展。好的命名代码完成了一半,当然有朋友觉得Ext也晦涩,目前感觉还好了。
和大家分享一些这次2.0开发中两件有趣的事情:
1)返回值的问题
很久以前在twitter上说过想把所有的返回值都改成{‘code’ : 0, ‘data’ : xxx}这样的,这次在开发的时候在犹豫要不要把所有的返回值都改成这样。
PHP还不是一个完全面向对象的语言,至少不能像python那样重载__bool__方法,这样直接的结果,我不能直接判断返回值,原来
if ($obj->foo($bar)) {
// do something
}
如果改返回数组,代码要改成:
$result = $obj->foo($bar);
if (0 === $result['code']) {
// do something
}
不太喜欢,多了一行代码,也不符合”懒惰”程序员的思维,会调整很多人的”神经”。
最近也很喜欢Go语言的错误处理方式,返回数据以及错误信息,所以ColaPHP返回值大多改造成还是返回操作值,失败就返回false,但是多提供了一个error成员变量,方便快速获取错误信息:
if ($obj->foo($bar)) {
// do something
} else {
var_dump($obj->error);
}
算是一个trade-off的方案吧,不过还是比较满意。
2) 异常处理
ColaPHP 1.x版本挺喜欢抛异常的,一些影响流程的错误全部抛异常,简单粗暴直接有效。在开发2.0的时候犹豫是不是要给使用者友好的错误信息,不想使用者一用到ColaPHP的代码就try {} catch {}之类的,流程断不断,交给程序员自己控制(这也是ColaPHP的设计哲学之一)。
犹豫了许久,google了一些PHP处理异常方式方法的文章,看到Laruence的我们什么时候应该使用异常?,权衡一下还是觉得直接抛比较好,相比try-catch,更难忍受充斥着if-else的代码,两害取其轻吧。
总的感觉,ColaPHP 2.0又回到了初见,原本简单。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









2023 年 3 月 14 日に ChatGLM-6B が発売されて以来、GLM シリーズ モデルは幅広い注目と認知を得てきました。特にChatGLM3-6Bがオープンソース化されてからは、Zhipu AIが投入する第4世代モデルに対する開発者の期待が高まっている。 GLM-4-9B のリリースにより、この期待はついに完全に満たされました。 GLM-4-9B の誕生 小型モデル (10B 以下) により強力な機能を提供するために、GLM 技術チームはこの新しい第 4 世代 GLM シリーズ オープン ソース モデル、GLM-4-9B をほぼ半年の期間を経て発売しました。探検。このモデルは、精度を確保しながらモデルサイズを大幅に圧縮し、推論速度の高速化と効率化を実現しています。 GLM 技術チームの調査はまだ終わっていない

Java フレームワークの商用サポートのコスト/パフォーマンスを評価するには、次の手順が必要です。 必要な保証レベルとサービス レベル アグリーメント (SLA) 保証を決定します。研究サポートチームの経験と専門知識。アップグレード、トラブルシューティング、パフォーマンスの最適化などの追加サービスを検討してください。ビジネス サポートのコストと、リスクの軽減と効率の向上を比較検討します。

GateToken(GT)通貨とは何ですか? GT (GateToken) は、GateChain チェーンのネイティブ資産であり、Gate.io の公式プラットフォーム通貨です。 GT コインの価値は、Gate.io および GateChain エコロジーの発展と密接に関連しています。ゲートチェーンとは何ですか? GateChain は 2018 年に誕生し、Gate.io によって開始された新世代の高性能パブリック チェーンです。 GateChain は、ユーザーのオンチェーン資産のセキュリティを保護し、便利な分散トランザクション サービスを提供することに重点を置いています。 GateChain の目標は、エンタープライズレベルの安全で効率的な分散型デジタル資産ストレージ、配信、およびトランザクションのエコシステムを構築することです。ゲートチェーンにはオリジナルがあります

軽量の PHP フレームワークは、サイズが小さくリソース消費が少ないため、アプリケーションのパフォーマンスが向上します。その特徴には、小型、高速起動、低メモリ使用量、改善された応答速度とスループット、および削減されたリソース消費が含まれます。 実際のケース: SlimFramework は、わずか 500 KB、高い応答性と高スループットの REST API を作成します。

PHP フレームワークの学習曲線は、言語熟練度、フレームワークの複雑さ、ドキュメントの品質、コミュニティのサポートによって異なります。 PHP フレームワークの学習曲線は、Python フレームワークと比較すると高く、Ruby フレームワークと比較すると低くなります。 Java フレームワークと比較すると、PHP フレームワークの学習曲線は中程度ですが、開始までの時間は短くなります。

51CTO Technology Stack (WeChat ID: blog51cto) が制作、Mistral は最初のコードモデル Codestral-22B をリリースしました!このモデルのすごいところは、多くのコード モデルが無視する Swift などを含む 80 以上のプログラミング言語でトレーニングされていることだけではありません。それらの速度はまったく同じではありません。 Go言語を使用して「パブリッシュ/サブスクライブ」システムを記述する必要があります。ここでは GPT-4o が出力されており、Codestral は、見るのが難しいほど高速で論文を提出しています。発売されたばかりのモデルのため、まだ公的テストは行われていない。しかし、Mistral の担当者によると、Codestral は現在最もパフォーマンスの高いオープンソース コード モデルであるとのことです。写真に興味のある友達は次の場所に移動できます: - 顔を抱きしめる: https

8月6日、CNMOはMeizuの新しい携帯電話が再び流出したことに気づいた。関係者が提供した情報によると、Meizuは6000mAhの超大容量バッテリーを搭載すると予想されるミッドレンジモデルを準備しているとのことですが、Meizu 22シリーズについては今のところニュースはないと予想されています。 Qualcomm Snapdragon 8Gen4 モバイル プラットフォームを搭載しており、リリース時期は遅れる可能性があります。以前の新しい Meizu 携帯電話を参照して、CNMO は Meizu 22 シリーズが 2025 年の第 1 四半期にリリースされる可能性があると考えています。 1. Meizu の新しい携帯電話は国家品質認証に合格しており、そのモデルは M431Q です。このマシンはエントリーレベルのモデルに位置し、10Wの充電のみをサポートしており、価格は1,000元程度になる見込みです。この携帯電話は Meizu のサブブランド Meizu の製品であると疑われています。 M431Q は、他のいくつかのモデルとともに今年 5 月にデータベースで発見されました。今回は国家品質を超えました

アプリケーションのシナリオに基づいて最適な Go フレームワークを選択します。アプリケーションの種類、言語機能、パフォーマンス要件、エコシステムを考慮します。一般的な Go フレームワーク: Jin (Web アプリケーション)、Echo (Web サービス)、Fiber (高スループット)、gorm (ORM)、fasthttp (速度)。実際のケース: REST API (Fiber) の構築とデータベース (gorm) との対話。フレームワークを選択します。主要なパフォーマンスには fasthttp、柔軟な Web アプリケーションには Jin/Echo、データベース インタラクションには gorm を選択してください。
