Tôi có một gói Symfony, nơi tôi sẽ phải sử dụng một lớp tùy chỉnh. Lớp này không cần phải truy cập từ tất cả các trang web, nhưng chỉ trong một bộ điều khiển của gói này. Tôi đã thấy một vài giải pháp liên quan đến các nhà cung cấp, nhưng điều này khá nặng và không cần thiết trong trường hợp của tôi. Có ai có giải pháp đơn giản hơn không?Cách đưa lớp tùy chỉnh vào Gói Symfony?
Trả lời
Lớp học phải được tạo trong Acme\Bundle\Model
không gian tên và thư mục, không phải\Class
! Ai nói cái này?!
// ../src/Acme/Bundle/Model/Utility.php
<?php namespace Acme\Bundle\Model;
class Utility:
..
Sử dụng trong điều khiển:
<?php ..
use Acme\Bundle\Model\Utility;
$x = new Utility(); // FINE!:)
Tên của tập tin (Utility.php
) phải bằng tên lớp.
Rõ ràng, tôi đã nói, khi tôi sử dụng từ 'Lớp' làm ví dụ. Xin lỗi bạn đã treo lên trên từ và bỏ mẫu :) Vị trí thực tế của lớp học thực sự không có gì để làm với vấn đề của OP. –
Vâng tôi có được bạn. Chỉ trích :) – Croll
Đây là những gì namespaces dành cho.
Từ php.net:
không gian tên là gì? Trong các không gian tên định nghĩa rộng nhất là cách đóng gói các mục.
Chỉ cần đặt, bao gồm không gian tên của bạn ở đầu lớp tùy chỉnh của bạn.
src/Acme/DemoBundle/mẫu/MyClass.php
<?php
namespace Acme\DemoBundle\Model;
class MyClass { // ...
và sử dụng nó trong điều khiển của bạn:
src/Acme/SomeOtherBundle/Controller/DefaultController.php
<?php
namespace Acme\SomeOtherBundle\Controller;
// ...
use Acme\DemoBundle\Model\MyClass; # can be used in any class in any bundle
// ...
class DefaultController extends Controller { // ...
'.php' ở cuối là không cần thiết, vì mọi tệp trong' src/'được được tự động tải. –
@Pazi đã không chú ý, nắm bắt tốt, chỉnh sửa –
Cảm ơn bạn đã trả lời. Tôi đã làm nó, nhưng trên thực tế, tôi không có ý tưởng nơi tập tin php của lớp phải được đặt, và tôi không biết làm thế nào để bao gồm nó ... (autoloads?) – maxime
- 1. Gói Eclipse tùy chỉnh
- 2. Cách đưa biểu tượng gỡ lỗi vào gói .vsix
- 3. Định tuyến i18n tùy chỉnh trong Symfony
- 4. Cách ghi dữ liệu tùy chỉnh vào trường tùy chọn tiêu đề gói TCP bằng Java?
- 5. Thêm lớp tùy chỉnh vào HttpContext
- 6. Nhập lớp Java tùy chỉnh
- 7. Tạo chuỗi lớp tùy chỉnh
- 8. Symfony 2 - Cách xóa một gói?
- 9. Thêm bước xây dựng tùy chỉnh với gói gói thầu
- 10. Cách thêm lớp phủ tùy chỉnh uiimagepickerview
- 11. Cách tạo gói ngôn ngữ tùy chỉnh cho Android?
- 12. trang lỗi 500 tùy chỉnh trong symfony 1.1
- 13. Symfony bao gồm một phần từ thư mục tùy chỉnh
- 14. Làm cách nào để đưa Thanh công cụ gỡ lỗi web vào trong Symfony Response?
- 15. Nhập một lớp tùy chỉnh trong Java
- 16. Mẫu kiểm soát tùy chỉnh WPFĐóng gói
- 17. Thêm tên lớp tùy chỉnh vào thẻ body Wordpress?
- 18. dat.gui lớp css tùy chỉnh
- 19. Cách áp dụng đơn hàng gói tùy chỉnh?
- 20. Lệnh quản lý tùy chỉnh Django chạy Phế liệu: Cách đưa các tùy chọn của Scrapy?
- 21. Cách thêm UIPickerView tùy chỉnh vào UINavigationBar?
- 22. Đưa IME vào hộp văn bản tùy chỉnh, bắt nguồn từ Điều khiển
- 23. Symfony2 & Doctrine2: Tạo chú thích tùy chỉnh
- 24. DataContractResolver/KnownType vấn đề khi lớp tùy chỉnh chứa một lớp tùy chỉnh
- 25. Cách thêm nút tùy chỉnh vào QMessageBox trong PyQt4
- 26. Cách thêm chế độ xem tùy chỉnh vào bố cục?
- 27. Lớp Google Maps tùy chỉnh qua API?
- 28. Cách sử dụng tùy chỉnh chung trong lớp GSON TypeToken?
- 29. Cách nhận gói hiện tại trong Symfony 2?
- 30. Symfony 2 cách nhập tệp LESS từ một gói khác
'không gian tên Acme \ MyBundle \ Class' .. để sử dụng:' sử dụng Acme \ MyBundle \ Class \ MyClass.php' –