Tôi mới dùng symfony2. Tôi bắt đầu với một số hướng dẫn và sau đó bắt đầu xây dựng SYMBLOG. Tôi đã hiểu nó và tôi có thể thêm hoặc thay đổi chức năng. Tôi có một chút nhầm lẫn trong quy trình làm việc, tôi có nghĩa là cách các tệp hoạt động cùng nhau để hiển thị một trang hoặc để tạo ra một kết quả đầu ra. Bất cứ ai có thể giải thích cho tôi một cách chi tiết từ đầu như thế nào dòng này đi vào trong symfony2. bắt đầu từ yêu cầu người dùng nói người dùng nhập url cho đến khi symfony2 hiển thị kết quả. vui lòng bao gồm routing.yml trong luồng. ?Quy trình làm việc với Symfony2?
Trả lời
Bạn nên kiểm tra liên kết này. Symfony - the big picture
Nó giải thích chi tiết tất cả các bước liên quan từ thời điểm bạn nhập URL trong trình duyệt vào trang được hiển thị.
Về cơ bản, tất cả các yêu cầu đều đi tới Bộ điều khiển mặt trước. Công việc của nó là định tuyến các yêu cầu tới mã điều khiển thích hợp. Nó thực hiện điều này với sự trợ giúp của các tuyến được xác định trong tệp app/config/routing.yml
. Các bộ điều khiển được xác định trong src/<BundleName>/Controller/<name>
thực hiện một số logic nghiệp vụ, như nhận dữ liệu từ Mô hình (Kho lưu trữ) và gửi thông tin đó tới Chế độ xem (Mẫu). Các khung nhìn đơn giản là mã HTML. Symfony sử dụng một công cụ tạo khuôn mẫu được gọi là Twig. Thay vì bao gồm các khối <?php ... ?>
trong mã HTML, Symfony chuyển dữ liệu từ bộ điều khiển và có thể dễ dàng sử dụng bên trong khung nhìn trong các khối Twig {% %}
hoặc {{ }}
.
một cách đơn giản, đây là quy trình làm việc:
- trình duyệt sẽ gửi yêu cầu
- Yêu cầu nhận được trong front controller
web/app_dev.php
hoặc web/app.php- điều khiển phía trước để kiểm tra các tuyến đường quy định tại
app/config/routing.yml
và gửi yêu cầu đến bộ điều khiển thích hợp được xác định trongsrc/<BundleName>/Controller/<controller_name>
- Bộ điều khiển chuẩn bị nội dung cần thiết trong HT ML (Ví dụ - truy vấn cơ sở dữ liệu từ
src/<BundleName>/Repository
) và gửi thông tin cho View -src/Resources/views/<twig file name>
- Quan điểm tạo HTML và gửi nó trở lại với bộ điều khiển
- Bộ điều khiển tạo ra một phản ứng HTTP và gửi nó lại cho trình duyệt
Có những thứ như ứng dụng/AppKernel ở giữa nhưng tôi đã bỏ qua.
Sau đây là các trích đoạn hữu ích từ các liên kết được cung cấp trên:
URL:
http://localhost/Symfony/web/app_dev.php/demo/hello/Fabien
gì đang xảy ra ở đây? Hãy phân tích URL: app_dev.php: Đây là bộ điều khiển phía trước. Đây là điểm vào duy nhất của ứng dụng và nó phản hồi tất cả các yêu cầu của người dùng; /demo/hello/Fabien: Đây là đường dẫn ảo đến tài nguyên mà người dùng muốn truy cập. Trách nhiệm của bạn với tư cách là nhà phát triển là viết mã để ánh xạ yêu cầu của người dùng (/ demo/hello/Fabien) đến tài nguyên được liên kết với nó (trang Hello Fabien! HTML).
Routing:
Symfony2 tuyến theo yêu cầu để mã để xử lý nó bằng cách cố gắng để phù hợp với URL được yêu cầu đối với một số mẫu cấu hình. Theo mặc định, các mẫu này (được gọi là các tuyến) được định nghĩa trong tệp cấu hình app/config/routing.yml. Khi bạn đang ở trong môi trường dev - được chỉ định bởi app_ dev .php front controller - tệp cấu hình ứng dụng/config/routing_dev.yml cũng được tải. Trong phiên bản Standard Edition, các tuyến đường để những "demo" trang được đặt trong tập tin đó:
_welcome:
pattern:/
defaults: { _controller: AcmeDemoBundle:Welcome:index }
Bộ điều khiển:
Symfony2 chọn bộ điều khiển dựa trên giá trị _controller từ định tuyến cấu hình: AcmeDemoBundle: Chào mừng: chỉ mục. Chuỗi này là bộ điều khiển tên logic, và nó tham chiếu đến phương pháp indexAction từ lớp Acme \ DemoBundle \ khiển \ WelcomeController:
class WelcomeController extends Controller
{
public function indexAction()
{
return $this->render('AcmeDemoBundle:Welcome:index.html.twig');
}
}
Xem:
Bộ điều khiển ám chỉ rằng src/Acme/DemoBundle/Tài nguyên/lượt xem/Demo/hello.html.twig mẫu
{% extends "AcmeDemoBundle::layout.html.twig" %}
{% block title "Hello " ~ name %}
{% block content %}
<h1>Hello {{ name }}!</h1>
{% endblock %}
Bạn cũng có thể muốn xem Symfony2 architecture
- 1. quy trình làm việc svnmerge
- 2. F # Quy trình làm việc/Quy trình phát triển
- 3. Quy trình làm việc Git + Drupal
- 4. quy trình làm việc di chuyển nhibernate +
- 5. Quy trình làm việc của Python 3?
- 6. Quy trình làm việc Dalvik JIT
- 7. Quy trình làm việc của Xcode 4 khi làm việc với nhiều dev
- 8. CQ5 Lập trình Chạy quy trình làm việc
- 9. Lập trình Hủy quy trình làm việc SharePoint
- 10. Quy trình làm việc điển hình của Git so với quy trình của Mercurial như thế nào?
- 11. Quy trình làm việc của Nhân sư và JavaScript
- 12. Bạn đã thử Quy trình làm việc của Spring chưa?
- 13. Quy trình làm việc UTF8 PHP, MySQL tóm tắt
- 14. Java - Tạo quy trình làm việc trong Quartz
- 15. Quy trình làm việc của Bower và Grunt
- 16. Mẫu thiết kế cho quy trình làm việc
- 17. Quy trình làm việc trong mã sản xuất
- 18. Tại sao Process.Start ("cmd.exe", quy trình); không làm việc?
- 19. "Tệp mở tối đa" cho quy trình làm việc
- 20. Quy trình làm việc để tạo ứng dụng iOS
- 21. Quy trình làm việc của Windows trong Azure
- 22. Quy ước đặt tên - Làm việc với PHP và MySQL
- 23. Công việc Cron trong symfony2
- 24. Trình chỉnh sửa trang và quy trình làm việc của Sitecore - làm cách nào?
- 25. Bất kỳ đề xuất nào cho việc triển khai quy trình làm việc của đường ray?
- 26. Quy trình làm việc với các chi nhánh tính năng luồng chảy và Gerrit
- 27. Quy trình làm việc với hai phiên bản của một dự án trong Mercurial
- 28. Quy trình làm việc và tích hợp Yeoman với Tập lệnh phụ trợ
- 29. Không thể xây dựng dự án quy trình làm việc với msbuild (Sharepoint 2010)
- 30. Cách phiên bản ngữ nghĩa phù hợp với quy trình làm việc git