2010-01-01 35 views
16

Tôi quan tâm đến việc tìm hiểu cách mọi người triển khai ứng dụng CakePHP của họ. Gần đây tôi đã được tiếp cận về việc thực hiện một số phát triển CakePHP tự do, đây sẽ là cơ hội tốt để tôi có được một số kinh nghiệm trong tầng thuyết trình (trong công việc FT của tôi, tôi phát triển Java EE trong các tầng lớp kinh doanh và lâu dài).Triển khai ứng dụng CakePHP

những suy nghĩ của tôi là một chút disorganized vào thời điểm này, nhưng tôi đang xem xét các tình huống sau:

  • Developer làm việc trong một IDE sẽ thay đổi một tập tin, đó là tự động (nền) đồng bộ với một phát triển máy chủ web chạy cục bộ. Kịch bản này là cách tôi lý tưởng muốn phát triển ... thực hiện thay đổi và có thể thấy thay đổi trong hành động mà không cần thêm bất kỳ bước nào.

  • Nhà phát triển làm việc trong IDE sửa đổi tệp, được đồng bộ hóa tự động (trong nền) qua FTP với máy chủ web phát triển chạy từ xa. Kịch bản này sẽ hữu ích khi tôi đang đi du lịch bằng cách sử dụng netbook của tôi (mà chạy IDE của tôi từ từ đủ vì nó là không có một máy chủ web trong hỗn hợp).

  • Quản trị viên triển khai phiên bản ứng dụng CakePHP mới nhất từ ​​kho lưu trữ mã nguồn đến máy chủ web chạy cục bộ.
  • Quản trị viên triển khai phiên bản ứng dụng CakePHP mới nhất từ ​​kho lưu trữ mã nguồn đến máy chủ web qua FTP.
  • Quản trị viên triển khai phiên bản ứng dụng CakePHP cũ hơn từ kho lưu trữ mã nguồn đến máy chủ web chạy cục bộ.
  • Quản trị viên triển khai phiên bản ứng dụng CakePHP cũ hơn từ kho lưu trữ mã nguồn đến máy chủ web qua FTP.

Các công cụ phát triển mà tôi thấy thoải mái nhất là Eclipse, Ant và Subversion. Sở thích của tôi là tiếp tục sử dụng chúng, nhưng tôi sẽ xem xét chuyển đổi nếu làm như vậy làm cho nó dễ dàng để đạt được các kịch bản.

Câu hỏi:

  • Là những kịch bản hợp lý, hoặc nên tôi cần phải suy nghĩ về việc phát triển và triển khai theo một cách khác?
  • Công cụ nào tồn tại có thể giúp đơn giản hóa việc phát triển/triển khai? Nó sẽ tốt hơn cho tôi để cuộn giải pháp của riêng tôi với Ant, kịch bản, v.v ...?
  • Làm cách nào để chúng tôi xử lý các vấn đề về cơ sở dữ liệu trong quá trình triển khai? Các thuộc tính kết nối cơ sở dữ liệu được chỉ định cho một triển khai cụ thể như thế nào? Điều gì xảy ra nếu cập nhật lên phiên bản mới hơn (hoặc hoàn nguyên về phiên bản cũ hơn) của ứng dụng CakePHP yêu cầu thay đổi lược đồ cơ sở dữ liệu và di chuyển dữ liệu?
  • Làm cách nào để chúng tôi định cấu hình các thuộc tính khác nhau giữa các lần triển khai? Ví dụ, xem xét tăng mức độ gỡ lỗi và ghi nhật ký được sử dụng trong quá trình phát triển, ngăn không cho thanh toán được gửi đến các cổng thanh toán trong quá trình phát triển, v.v.
  • Việc nâng cấp hoặc hoàn nguyên triển khai ảnh hưởng đến khách hàng như thế nào? Ví dụ: nếu chúng ở giữa giao dịch (ví dụ: mua sản phẩm)?
  • Làm cách nào để chúng tôi xử lý các loại cài đặt CakePHP khác nhau? Các tệp có thể cần được cài đặt ở các vị trí khác nhau tùy thuộc vào loại cài đặt. Làm thế nào chúng ta có thể biết nơi tập tin nên được cài đặt? Cuốn sách CakePHP mô tả phát triển, sản xuất và cài đặt nâng cao.

Xin lỗi vì có quá nhiều câu hỏi trong một bài đăng nhưng tôi nghĩ rằng tất cả các câu hỏi đều có liên quan và nghĩ rằng sẽ hữu ích khi duy trì cuộc thảo luận ở một nơi.

Trả lời

12

Đây có phải là những tình huống hợp lý không, hoặc tôi có cần suy nghĩ về phát triển và triển khai theo cách khác không?

Có vẻ hợp lý, mặc dù đồng bộ hóa FTP khiến tôi nghĩ về Dreamweaver. :)

Xem xét sử dụng một IDE cho phép bạn kết nối với một máy chủ trên (S) FTP, hoặc sử dụng một trong các cách sau ...

những công cụ tồn tại có thể giúp đơn giản hóa phát triển/triển khai? Nó sẽ tốt hơn cho tôi để cuộn giải pháp của riêng tôi với Ant, kịch bản, v.v ...?

Jenkins, Capistrano, Phing, Ant, git push/pull, rsync vv

Làm thế nào để chúng tôi xử lý các vấn đề cơ sở dữ liệu trong việc triển khai? Các thuộc tính kết nối cơ sở dữ liệu được chỉ định cho một triển khai cụ thể như thế nào? Điều gì xảy ra nếu cập nhật lên phiên bản mới hơn (hoặc hoàn nguyên về phiên bản cũ hơn) của ứng dụng CakePHP yêu cầu thay đổi lược đồ cơ sở dữ liệu và di chuyển dữ liệu?

Sử dụng cake schema generatecake schema run update.

Làm cách nào để định cấu hình các thuộc tính khác nhau giữa các lần triển khai? Ví dụ xem xét tăng mức độ debug và khai thác gỗ được sử dụng trong phát triển, ngăn chặn khoản thanh toán được gửi đến cổng thanh toán trong phát triển vv

Tên file khác nhau cho phù hợp (ví dụ. core.php.prd vs core.php.dev) và đổi tên vào cài đặt.

Việc nâng cấp hoặc hoàn nguyên triển khai ảnh hưởng đến khách hàng như thế nào? Ví dụ: nếu chúng ở giữa giao dịch (ví dụ: mua sản phẩm)?

Vì vậy, tệp ứng dụng của bạn không kết thúc ở trạng thái không nhất quán, bạn nên bắt đầu bằng cách kiểm tra bản sao mới của ứng dụng sang thư mục mới. Sao chép trên bất kỳ tệp người dùng nào đã gửi, đổi tên *.prd tệp và sau đó chuyển bản sao cũ bằng bản sao mới (bằng cách đổi tên hoặc sử dụng liên kết tượng trưng). Các phiên phải được lưu ở đâu đó sẽ tồn tại khi nâng cấp (ví dụ: php hoặc database, thay vì cake).

Làm cách nào để chúng tôi xử lý các loại cài đặt CakePHP khác nhau? Các tệp có thể cần được cài đặt ở các vị trí khác nhau tùy thuộc vào loại cài đặt. Làm thế nào chúng ta có thể biết nơi tập tin nên được cài đặt? Cuốn sách CakePHP mô tả phát triển, sản xuất và cài đặt nâng cao.

Sự phát triển cài đặt cũng an toàn như bất kỳ ứng dụng PHP có sử dụng .htaccess file để chuyển hướng yêu cầu (mọi người sẽ không thấy mã của bạn, trừ khi bạn gỡ bỏ cài đặt/misconfigure mod_rewrite và PHP). Cài đặt sản xuất hơi phức tạp hơn trừ khi bạn có thể chỉnh sửa gốc tài liệu của máy chủ ảo của mình. Cài đặt nâng cao cho phép bạn cài đặt Bánh ở bất kỳ đâu trong hệ thống tệp nhưng thêm độ phức tạp hơn (vì tệp của bạn nằm ở hai vị trí riêng biệt, nhưng có thể nằm trong một repo đơn)

+0

Kịch bản di chuyển DB thay thế có thể tìm thấy tại đây: http://stackoverflow.com/questions/2522372/good-db-migrations-for-cakephp – deizel

Các vấn đề liên quan