Hướng dẫn is php good for api? - php có tốt cho api không?

Gọi PHP là một cây búa đôi là một chút đùa giỡn trong cộng đồng PHP. Trò đùa xuất phát từ một bài đăng trên blog nơi ai đó chỉ ra tất cả các vấn đề với PHP. Nếu bạn cảm thấy nerdy, bạn có thể đọc bài viết này để biết thêm.

Dù sao, PHP là một ngôn ngữ bừa bộn hút trong giới học thuật nhưng không quan trọng vì nó thực sự giỏi về công cụ web, có rất nhiều người biết điều đó (vì vậy nó rẻ để thuê), có rất nhiều thư viện và khuôn khổ ( Vì vậy, nó rẻ và nhanh chóng để phát triển). & NBSP; Thế giới thương mại sẵn sàng bỏ qua các mụn cóc học thuật.

Tôi đang bận giúp cải thiện hiệu suất của máy chủ API. & Nbsp; là một phần trong nỗ lực của tôi, tôi đang định lập các cuộc gọi đến điểm cuối. đang sản xuất để tôi có thể kiểm tra các chỉ mục và tham gia.

Đây là một CallGraph (được tạo bằng blackfire.io) để gọi đến điểm cuối nơi chúng tôi đang tìm cách chạy một truy vấn SQL được phân trang. & NBSP;

Chúng tôi không áp dụng bất kỳ logic kinh doanh nào hoặc có bất kỳ tác dụng phụ nào - tất cả những gì chúng tôi đang cố gắng làm là truy vấn cơ sở dữ liệu và trả lại chuỗi JSON cho Frontend.

Đó là một biểu đồ cuộc gọi khá đáng kể cho những gì nghe có vẻ như một nhiệm vụ đơn giản phải không? & NBSP; tất cả những gì tôi muốn làm là định tuyến yêu cầu đến bộ điều khiển, truy vấn cơ sở dữ liệu và gửi lại kết quả.

Blackfire nói với tôi rằng 172 truy vấn MySQL khác nhau đang được chạy. Có thể tối ưu hóa các truy vấn cần thiết để làm việc hiệu quả.

Được rồi, vậy tôi có câu hỏi gì?

Tại sao chúng tôi không truy vấn cơ sở dữ liệu trực tiếp hơn? & NBSP; Tôi đánh giá cao rằng năng suất của nhà phát triển là một lý do chính đáng để sử dụng ORM nhưng đó có phải là một lý do chính đáng trong trường hợp này? & NBSP; 172 truy vấn là rất nhiều Liên quan đến truy vấn lược đồ để ORM của chúng tôi có thể chạy.

Tại sao trên Trái đất, PHP phải dành quá nhiều thời gian cho I/O đĩa đọc tất cả các tệp nguồn đó khi thực sự những gì chúng ta cần là định tuyến yêu cầu, truy vấn cơ sở dữ liệu và trình xử lý phản hồi? & NBSP;

Blackfire & nbsp; báo cáo rằng 304kb dữ liệu đã được truyền qua dây đến và từ cơ sở dữ liệu cho việc này. & Nbsp; có vẻ như rất nhiều dữ liệu cho năm hoặc sáu bản ghi mà tôi đang quay trở lại mặt trận.

Biểu đồ cuộc gọi đang bực bội - & nbsp; Tôi đang bị chia sẻ với rất nhiều mã hộp đen và tôi không kiểm soát được SQL đang được chạy. & NBSP; Làm thế nào tôi có thể cải thiện hiệu suất của giao dịch này?

Vậy PHP có phải là công cụ tốt nhất cho công việc này không?

Trước đây tôi đã gặp vấn đề khó khăn với PHP khi quản lý bộ nhớ. & NBSP; Nó khá phức tạp và nó khác nhau tùy thuộc vào cách chạy PHP nhưng tôi không tin tưởng 100% vào bộ sưu tập rác của PHP. & NBSP;

Các tham chiếu đối tượng tròn (mà tôi gặp trong khi sử dụng ORM & NBSP; trong đó một mô hình tự tham chiếu là cha mẹ để tạo thành một hệ thống phân cấp) không thể được thu thập hoàn toàn bởi PHP. & NBSP; PHP thực sự dựa vào container mà máy chạy để thu thập bộ nhớ này. & NBSP ;

PHP không được xây dựng để trở thành một chương trình dài hạn. & NBSP; Nó không bao giờ được thiết kế cho việc này và nó không bao giờ nên được sử dụng cho việc này.

Ứng dụng được khởi động cho mọi yêu cầu. & NBSP; Điều này thêm bao nhiêu chi phí?

Dòng thời gian cho thấy khi một hàm PHP được gọi liên quan đến thời gian thực hiện để tạo phản hồi. & NBSP;

Hàm bộ điều khiển của tôi bắt đầu khoảng 750m vào giao dịch. & NBSP; Thời gian thực tế không liên quan như một điểm chuẩn, nhưng thực tế là lần đầu tiên * mã * của tôi chạy là nửa đường vào giao dịch là những gì có liên quan. & NBSP; & NBSP;*my* code runs is half-way into the transaction is what is relevant.  

Cho đến khi đi vào một nửa ứng dụng của tôi & nbsp; tôi đã chờ php bootstrap Ứng dụng của mình. & Nbsp; bạn có thể lập luận rằng điều này là do khung PHP tôi đang sử dụng, nhưng thực sự đó là giới hạn của PHP không thể duy trì trạng thái Điều đó đòi hỏi chúng ta phải liên tục bootstrap Ứng dụng.

Bootstrapping Ứng dụng của chúng tôi có thể liên quan đến & nbsp; đĩa I/O (tùy thuộc vào opcache). Để cải thiện điều này, như không sử dụng khung và & nbsp; bằng cách điều chỉnh & nbsp; opcache & nbsp; để cải thiện thời gian biên dịch.

Tôi lo ngại về những gì sẽ xảy ra khi ứng dụng có 50.000 người dùng đồng thời. & NBSP; Nó sẽ đặt bao nhiêu biến dạng trên máy chủ cơ sở dữ liệu của tôi liên tục kết nối (và xác thực)?

Tôi nghĩ PHP rất xuất sắc tại các trang web và không giỏi trong việc trở thành một ứng dụng dài hạn có khả năng tái sử dụng tài nguyên. & NBSP; Tôi là một người hâm mộ PHP lớn nhưng là một kiến ​​trúc sư, tôi không muốn nó là công cụ duy nhất của tôi. Chúng tôi sẽ làm cho PHP hoạt động như một máy chủ API, nhưng tôi không chắc đó là nơi tốt nhất để PHP sẽ tham gia.

API có sử dụng PHP không?

API nhận được yêu cầu và trả về kết quả trong hệ thống phần mềm của lập trình viên.Nếu hệ thống giao tiếp với cơ sở dữ liệu, thì API được phơi bày bởi các tiện ích mở rộng PHP.If the system communicates with databases, then the APIs are exposed by PHP extensions.

Nhà phát triển API có phải là một nghề nghiệp tốt không?

Vai trò của một nhà phát triển API luôn mở rộng, vì họ phải cởi mở để liên tục học hỏi từ các bên liên quan kỹ thuật và kinh doanh giữa các nhóm, công ty và hệ sinh thái.

API REST trong PHP là gì?

API REST là API cho phép các lập trình viên gửi và nhận thông tin từ các chương trình khác bằng các lệnh giao thức HTTP như GET và POST.Mặc dù API REST hoạt động với hầu hết các giao thức, nhưng nó được thiết kế đặc biệt để truyền dữ liệu qua giao thức HTTP.an API that allows programmers to send and receive information from other programs using HTTP protocol commands such as GET and POST. Although REST API works with most protocols, it is specially designed for transmitting data through the HTTP protocol.

Khung API là gì?

Khung là bộ xương giữ thư viện hoặc thư viện.API là giao diện lập trình cho phép bạn tương tác với một ứng dụng hoặc hệ điều hành khác.Nó lấy từ các nguồn mã trong khung để làm việc với các nguồn mã hoặc ứng dụng khác của mã.the skeleton holding the library or libraries. The API is the programming interface allowing you to interact with another application or operating system. It pulls from sources of code within the framework to work with other sources of code or applications of the code.