Trao đổi về dự án

Blog PartITech

Blog công nghệ

Phân tích kỹ thuật, hướng dẫn thực tế và kinh nghiệm triển khai để xây dựng, hiện đại hóa và duy trì ứng dụng bền vững.

221 bài viết Trang 11

Cấu hình Exim để gửi email với Gmail

Chúng ta sẽ xem cách cấu hình Exim4 để gửi email hệ thống qua Gmail. Điều này sẽ đảm bảo rằng các email bạn gửi bằng CRON của mình được định tuyến chính xác và không rơi vào thư mục spam. Hãy cài đặt Exim4 apt-get install exim4 Cấu hình dpkg-reconfigure exim4-config Chọn: mail được gửi bởi smarthost; không có mail nội bộ Sau đó trả lời các câu hỏi như sau: System mail name: YOUR_HOSTNAME IP-addresses to listen on for incoming SMTP connections: 127.0.0.1 ; ::1 Oth...

Sonata Admin: DataMapper và autowiring

Nếu bạn có nhu cầu cụ thể để chuyển đổi dữ liệu giữa biểu mẫu và quá trình ghi của thực thể của mình và nghĩ rằng mã chuyển đổi này nên được đặt trong một dịch vụ vì nó có ý nghĩa hơn, bạn có thể sử dụng dataMapper bằng cách tận dụng tính năng tiêm phụ thuộc do Symfony cung cấp. Nhưng làm thế nào để triển khai nó? Một lưu ý nhỏ về DataMapper. Nếu chúng ta đồng ý với tài liệu chính thức của Symfony về DataMapper và DataTransformer, một dataMapper có trách nhiệm đọc và viết một đối tượng (một t...

SF6 / Sonata 5 : Quản lý một giao diện OneToMany trong CRUD với CollectionType của Sonata

Trong ví dụ này, chúng ta sẽ xem xét trường hợp cụ thể của một giao diện đơn giản bao gồm nhiều yếu tố. Chúng ta đã chọn sử dụng bảng "Dự án" trong đó chúng ta sẽ gán tài liệu. Vì vậy, đối với một dự án, chúng ta có thể gán nhiều tài liệu. Và để thuận tiện trong quản lý, chúng ta sẽ đảm bảo rằng chúng ta có thể quản lý giao diện lồng nhau trực tiếp trong giao diện chỉnh sửa của dự án của mình.Chúng ta cần tạo sơ đồ. Đầu tiên, chúng ta nhập sơ đồ hiện tại của mình vào MysqlWorbench bằng cách s...

PHP FFI: sử dụng thư viện Kotlin Multiplatform — phần 4

Với Stéphane Péchard https://www.linkedin.com/in/stephanepechard/, chuyên gia Android và KMP guru, chúng tôi tự hỏi liệu việc phát triển một thuật toán dưới KMP và thực thi nó trực tiếp trong PHP có khả thi hay không. Đặc tả khá đơn giản: người phát triển Android (Stéphane) cung cấp cho tôi một tệp tiêu đề, một tệp .so và tôi xử lý nó. Với tệp tiêu đề, hợp đồng, chúng tôi có thể nghĩ ra điều gì đó... Vì vậy, chúng tôi đã quản lý để thực hiện cuộc gọi hàm của mình. Như...

PHP FFI : các callback — phần 3

Phản HồiTrong quá trình chuẩn bị bài viết này, tôi nhận thấy rằng nhiều tài nguyên trên internet trực tiếp sử dụng thư viện libc cho các ví dụ của họ. Bạn có thể dễ dàng tìm thấy những ví dụ đơn giản và trực quan. Nhưng để làm điều gì đó thú vị và độc đáo, tôi đã nghĩ "hãy tìm một cái gì đó để thể hiện với libc này". Dù sao đi nữa… nếu chỉ là truyền một cấu trúc như hầu hết các ví dụ, nó sẽ không hữu ích. Và sau đó, tôi tình cờ thấy một chức năng trong một...

PHP FFI: truyền tham số — phần 2

Gọi trực tiếp thư viện PHP?Nếu chúng ta viết một đoạn code vô dụng thì sao? Hãy thử nào!!! Hãy thử nào!! Hãy thử nào!!!Được rồi, OK. Tôi đề xuất chúng ta làm điều gì đó vô dụng bằng cách sử dụng PHP để gọi một thư viện C sử dụng Zend Engine.Thực ra, đoạn văn này không hề vô dụng như bạn nghĩ. Mục đích của nó là để cho bạn thấy một hành vi đặc biệt 😊PHP-FFI có một số hạn chế: bạn không thể truyền trực tiếp một biến PHP để lấy giá trị động của nó từ thư viện bên ngoài.Bạn chỉ có thể truyền các ...

PHP FFI: giới thiệu — phần 1

Giới thiệuTừ phiên bản 7.4 của PHP, chúng ta cuối cùng cũng có quyền truy cập vào các chức năng tương tác giữa các ngôn ngữ khác nhau và PHP: FFI hay Giao diện Chức năng Ngoại vi.FFI là gì? Đơn giản là khả năng sử dụng thư viện bên ngoài (.dll hoặc .so) trực tiếp trong PHP, mà không cần tạo ra một extension PHP. Vâng, chỉ với một script PHP! Đó là, trong số những thứ khác, điều đã làm cho Python trở nên nổi tiếng và cho phép nó có nhiều tính năng hơn.Điều tuyệt vời về FFI là một nhà phát tri...

Symfony 6 / Sonata 5: Cài đặt SonataClassification.

Place translated content here. be sure to have the initial strucure and placeholders. Điều chỉnh ví dụ cho phù hợp với phiên bản đã cài đặt Các ví dụ Symfony và Sonata vẫn gắn với các phiên bản được chỉ ra trong bài viết. Symfony 4.x và Symfony 6.2 không còn được duy trì: đối với một dự án hiện tại, hãy sử dụng một nhánh được duy trì và tài liệu tương ứng chính xác với các phụ thuộc của bạn. php bin/console about composer show symfony/framework-bundle sonata-project/admin-bundle Trước khi t...

Symfony 6 / Sonata 5: Liên kết các ngôn ngữ và múi giờ với sở thích của người dùng.

Chúng tôi đã thấy trong một bài viết trước cách cài đặt Symfony 6 + Sonata Admin 5 với quản lý người dùng và quản lý media. Chúng tôi sẽ tiếp tục cài đặt này với cấu hình ngôn ngữ và múi giờ. Chúng tôi sẽ cài đặt intlBundle giúp quản lý hiển thị theo địa phương. php8.1 composer.phar require sonata-project/intl-bundle Chúng tôi nhân cơ hội này để thêm trường múi giờ và ngôn ngữ vào người dùng.Để làm điều này, chúng tôi sẽ mở rộng userBundle và thêm trường vào trong admin. Chúng tôi mở rộ...

Symfony 6 / Sonata 5 : Khởi tạo một dự án Symfony 6 + Sonata admin 5 + UserBundle + MediaBundle

Đây là các lệnh để khởi tạo một dự án Symfony với quản trị an toàn. Để chạy Symfony 6, chúng ta cần cài đặt php8.0 hoặc php8.1 Đối với php8.0 sudo apt-get install php8.0-cli libapache2-mod-php8.0 php8.0-common php8.0-opcache php8.0-igbinary php8.0-imagick php8.0-msgpack php8.0-readline php8.0-memcached php8.0-xml php8.0-mbstring php8.0-gd php8.0-mysql php8.0-curl php8.0-intl php8.0-memcache php8.0-memcached memcached libapache2-mod-php8.0 php8.0-zip php8.0-mysql Đối với php8.1 su...

Cài đặt Dropbox không giao diện trên một máy chủ Linux

Việc giải nén kho lưu trữ được thực hiện trong thư mục .dropbox-distHãy thực thi lệnh sau để chạy chương trình: ~/.dropbox-dist/dropboxd Chương trình sau đó sẽ phát hiện rằng máy tính không liên kết với bất kỳ tài khoản nào và sẽ yêu cầu bạn xác thực. Để liên kết máy chủ, chương trình cung cấp cho bạn một URL để mở trong trình duyệt của bạn. Chừng nào bước này chưa được hoàn thành, chương trình sẽ tiếp tục yêu cầu bạn thực hiện hành động này. Trên trình duyệt Dr...

Tạo một token trên Binance Smart Chain

```html We will see how to create a Token (Smart Contract) on the Binance Smart Chain (BSC) and deploy it to allow everyone to trade it.We assume that you already know the principles of cryptocurrency, that you have already bought some, and that you know how wallets work.Smart Contracts are programs that directly control digital assets. These are the programs that, once "inserted" into the blockchain, define how these assets will be managed.Once the program is added to the blockchain, it cann...