![[RFC] Duration class](/images/og-default.png)
A PHP internals RFC discussion proposing a new Time\Duration class for PHP 8.6, targeting 'stopwatch' or 'egg-timer' style durations to improve developer experience for timeout APIs. The class uses a seconds+nanoseconds internal representation (similar to Rust's and Java's Duration), supports construction from hours down, and parses ISO-8601 period strings starting with 'PT'. The RFC is intentionally minimal to meet the PHP 8.6 feature freeze deadline and serve as the foundation for a broader modernized date/time API. Discussion covers design decisions including omitting floating-point conversion methods, namespace choice (Time vs DateTime), ISO-8601 string serialization, and whether to use add/sub vs a variadic sum method.
Nguồn: https://externals.io/message/131803. 8sync News chỉ tóm tắt và dẫn link; bản quyền nội dung thuộc tác giả và nguồn gốc.
Nguyên tắc DRY (Don't Repeat Yourself) quan trọng nhưng việc loại bỏ trùng lặp cũng có chi …
Một nhà phát triển PHP giàu kinh nghiệm 10 năm đang xây dựng khóa học miễn phí giới thiệu PHP hiện đại do thiếu tài nguyên hướng dẫn chất lượng cho người mới. Khóa học gồm 8 chương đã sẵn sàng, bao gồm cài đặt, cú pháp, Composer, công cụ QA và triển khai, với các chủ đề chuyên sâu hơn sẽ được bổ sung sau. Tác giả đang tìm kiếm phản hồi từ chuyên gia PHP để cải thiện khóa học và thúc đẩy cộng đồng PHP.
Nếu bạn là lập trình viên mới bắt đầu với PHP, bài viết này sẽ giúp bạn khám phá một nguồn học tập miễn phí, hiện đại và được xây dựng từ kinh nghiệm thực tế, giúp bạn nhanh chóng nắm vững cơ sở và tránh những sai lầm thường gặp trong quá trình học tập.

Một chuyên gia công nghệ với 20 năm kinh nghiệm lập luận rằng danh xưng "Full-Stack Developer" đang trở nên hạn chế, thay vào đó đề xuất khái niệm "Feature Expert" (Chuyên gia Tính năng). Giá trị cốt lõi không nằm ở ngôn ngữ hay framework mà ở khả năng nhận diện các mẫu vấn đề lặp đi lặp lại (tính toán giá, tối ưu tìm kiếm, caching) và giải quyết chúng bất kể tech stack. Bài viết khuyên các lập trình viên trình độ trung cấp nên tập trung vào cấu trúc dữ liệu và xây dựng kho kiến thức các vấn đề đã giải quyết thay vì tích lũy ngôn ngữ.
Là người muốn nâng cao hiệu quả làm việc và chuyên sâu trong các vấn đề thực tế như tính toán giá, tối ưu tìm kiếm hay quản lý bộ nhớ, bài viết này giúp bạn chuyển từ kiến thức kỹ thuật sang tư duy giải quyết vấn đề xuyên suốt các ngôn ngữ và công nghệ.
Nhóm phát triển PHP vừa tung ra phiên bản 8.4.23, một bản cập nhật bảo mật quan trọng cho …
Việc sử dụng thư viện open source trở nên tốn kém hơn do chi phí duy trì, kiểm toán và phụ …
Di chuyển từ kiến trúc monolith sang microservices cần áp dụng các pattern cụ thể thay vì viết lại toàn bộ. Bốn chiến lược chính gồm: Strangler Fig (dần dần chuyển lưu lượng qua API gateway), Parallel Run (chạy song song để kiểm chứng), Collaborator (thêm microservices mới mà không sửa core), và Change Data Capture (đồng bộ dữ liệu real-time bằng Debezium/Kafka Connect). Các pattern này hiệu quả nhất khi kết hợp theo trình tự trong quá trình chuyển đổi.
Lập trình viên nên đọc bài này để hiểu cách chuyển đổi từ kiến trúc monolith sang microservices một cách chỉnh xác, ít rủi ro và tối ưu hóa hiệu suất, không phải là một thay đổi đột ngột mà là một quá trình thuần túy, có kế hoạch với các mẫu thiết kế hiệu quả.
Bài viết hướng dẫn triển khai CQRS trong Node.js/TypeScript theo cách đơn giản, không cần cơ sở hạ tầng phức tạp như event sourcing hay message queues. CQRS ở đây chỉ là cách tổ chức code tách biệt logic ghi (commands) và đọc (queries), với ví dụ TypeScript cụ thể về rich write side và lean read side. Tác giả khuyên nên bắt đầu từ phân tách code đơn giản rồi nâng cấp dần khi cần thiết.
Lập trình viên nên đọc bài này để hiểu cách áp dụng CQRS một cách đơn giản và hiệu quả trong Node.js/TypeScript mà không cần phụ thuộc vào kiến trúc phức tạp, từ đó tối ưu hóa quy trình phát triển và bảo trì ứng dụng của mình.

Bài thảo luận đề xuất bổ sung phương thức đối tượng cho các kiểu scalar (số, chuỗi) trong PHP, cho phép gọi trực tiếp như $str->trim() hay (3)->pow(2). Phương pháp này sử dụng cơ chế dispatch tĩnh, chuyển đổi thành lời gọi static tới các lớp nội bộ mà không thêm opcode mới, nhưng vấp phải phản đối về phạm vi áp dụng hạn chế do mô hình biên dịch theo file của PHP và nguy cơ phá vỡ công cụ phân tích tĩnh.
Lập trình viên nên đọc bài này để hiểu cách PHP đang thảo luận về cách mở rộng tính năng gọi phương thức trực tiếp trên giá trị nguyên thủy (scalar) như $str->trim() mà vẫn đảm bảo hiệu suất và tính bảo mật thông qua cơ chế phân tán compile-time.