Master of Firefox 3
Sau một hồi dạo quanh tìm hiểu thêm về Firefox 3, tìm thêm được nhiều tính năng mới về Firefox 3 mà chưa biết hoặc chưa dùng bao giờ
Thay đổi icon size
Cái nút Back trong Firefox 3, to hơn bình thường nhưng không phải ai cũng thích nó
. Có một cách để “tắt” nó là :
- Click phải vào thanh ToolBar
- Chọn Use Small Icon

Tận dụng Awesome Bar
Firefox 3 thay đổi gần như hoàn toàn thanh Location Bar, gọi là Awesome Bar, tuy nhiên cái này cũng phiền lắm nếu không biết xài
. Chẳng hạn như nó lưu lại quá khứ truy cập của người dùng, không nằm trong History cũng không nằm trong bookmark , như vậy là vi phạm về privacy
. Tuy nhiên cũng có 2 tip khi dùng thanh Awesome Bar này
- Khi bạn muốn xóa 1 trang hiển thị trong Awesome Bar, chỉ cần di chuyển (dùng bàn phím) đến mục đó và ấn SHIFT + DELETE
- Bạn có thể điều khiển số trang hiển thị trong mục cấu hình browser.urlbar.maxRichResults . Mở url about:config và thay đổi giá trị này theo ý thích cá nhân

Hoặc là ví dụ bạn không thích thanh Awesome Bar thì có thể dùng add-on này của Firefox, và mọi thứ lại như trước
Dependency made simple
Dependency Injection là một pattern cho phép người dùng đưa một lệ thuộc vào lớp / đối tượng. Hay nói cách khác là một phương pháp tách lệ thuộc của một lớp đối với một lớp khác. Có một bài viết do Martin Fowler viết, khá là dài dòng và phức tạp, nhưng thực tế nó lại rất đợn giản
, thậm chí là nhiều người đã dùng mà không biết là mình dùng pattern này.
Có 3 phương pháp injection :
- Constructor Injection
- Setter Injection
- Interface Injection
Xét đoạn php như sau :
class Example { private $_helper; public function __construct() { $this->_helper = new MyHelper(); } public function doSomethiong() { $this->_helper->foo(); } } interface MyHelper_Interface { public function foo(); } class MyHelper implements MyHelper_Interface { public function foo() { echo 'Foo'; } } |
Rõ ràng là Example bị lệ thuộc vào MyHelper thông qua khai báo. Sau đây sẽ tiến hành thay đổi code để thích hợp với các kiểu DI trên.
Constructor Injection
Đơn giản là truyền một đối tượng khi khởi tạo để xóa dòng khởi tạo trực tiếp lớp MyHelper.
class Example { private $_helper; public function __construct(MyHelper_Interface $helper) { $this->_helper = $helper; } /* rest of the class is here */ } |
Setter Injection
Cách thứ 2, dùng thông qua hàm set để inject helper vào, mục tiêu vẫn là hủy dòng khởi tạo trực tiếp.
class Example { private $_helper; public function setHelper(MyHelper_Interface $helper) { $this->_helper = $helper; } /* rest of the class is here */ } |
Interface Injection
Cách thứ 3 là phức tạp nhất, cách này dùng khi việc inject Helper này xảy ra thường xuyên nên đưa thành một interface luôn. Cái này thật ra chỉ là phiên bản Setter điều chỉnh lại
interface iInjectHelper { public function injectHelper(MyHelper_Interface $helper); } class Example implements iInjectHelper { private $_helper; public function injectHelper(MyHelper_Interface $helper) { $this->_helper = $helper; } /* rest of the class is here */ } |
Kết luận
Hầu hết tất cả các phương pháp DI trên đều dùng để làm một việc là hủy việc khởi tạo trực tiếp lớp MyHelper, hay là xóa đi lệ thuộc của MyHelper đối với Example, tùy vào nhu cầu cụ thể mà dùng phương pháp Injection nào, nếu như class cần inject có quan hệ composition thì lúc đó phải dùng constructor injection, trong khi quan hệ chỉ là aggregation thì có thể dùng setter hoặc interface injection, chi tiết hơn thì có thể xem lại bài của Martin Fowler
Biên & Dịch từ đây
Chức năng mới của Firefox 3
Firefox 3 khi ra đời thì nhận được rất nhiều lời khen và chê khác nhau. Nhưng mà có chức năng Mozilla cài đặt mà không tuyên bố ra
.
1. Mozilla đã cải thiện chức năng FTP Browser
, giờ nhìn khá là friendly hơn. Ai đó “vô tình” thử sẽ thấy.
2. Thử gỏ vào about:robots
, cái này chắc là Easter Egg của Firefox 3
Ngoài ra, Mozilla còn cải thiện vài chức năng bí mật trong CSS, giúp việc thiết kế tiện dụng hơn, nhưng nói chung thì vẫn thích nhất chức năng cải thiện FTP Browser
.
P/s : Bonus thêm 1 picture
Trong phiên bản Firefox 3 dùng cho Mac có một sự khác biệt là tab bị lật ngược lại
. Cái này là bắt chước y khuông của Safri. Safri Tab là tab ngược, mà theo nhiều người, tab nên gắp liền với trang đang xem mới là hợp lý. Thú vị hen




