All streams
Search
Write a publication
Pull to refresh
2
0
Send message
Как сделал я в одном из проектов:
1. У нас есть один объект Application который создаётся один раз в глобальном пространстве имён.
2. У нас есть абстрактный класс Application_Object:

  1. abstract class Application_Object {
  2.   
  3.   /**
  4.    *
  5.    * @var \Library\Application
  6.    */
  7.   public $application = null;
  8.   
  9.   public function afterConstruct() {}
  10.   
  11.   final public function __construct($ParentObject) {
  12.     switch (true) {
  13.       case ($ParentObject InstanceOf Application_Object):
  14.         $this->application = $ParentObject->application;
  15.       break;
  16.       case ($ParentObject InstanceOf Application):
  17.         $this->application = $ParentObject;
  18.       break;
  19.     }
  20.     if (is_null($this->application)) {
  21.       throw new Application_Exception("ParentObject must be an instance of Application or Application Object");
  22.     }
  23.     $this->afterConstruct();
  24.   }
  25.   
  26. }
* This source code was highlighted with Source Code Highlighter.


От него я уже наследую абсолютно всё, что относится к проекту: Модели, Контроллеры и всё остальное. Например в контроллере можно создать модель просто написав new Model($this); вместо new Model().

Зато в любом месте можно вытащить например $this->application->getDb()->query(....);

Может быть это и есть dependency injection, но такой подход меня во всём устраивает. Если есть критика, могу выслушать :)
И в итоге мы всё равно приходим к WHERE… OR… OR… OR и т.д. Лучше проектировать базу по другому.
И? Много телефонов найдётся у которых есть такой набор опций? (имеется ввиду память И 1 гиг, И 2 гига)
И это коммерческий продукт?) Да в моём самописном магазине (причём это первый продукт), с быдлокодом и то на самую тяжёлую страницу (вывод всех товаров категории, как раз таки описанный случай с /all/ имеет порядка 10-15 запросов, расширенный поиск так вообще почти на каждой странице присутствует, могу дать ссылку посмотрите :) Интернет-магазин ноутбуков, правда без оплаты безналом.
Ага, и в тот момент когда он выиграет, у правого произойдёт обнуление очков :)
Хм, только у меня не сохраняются настройки плагина?
Как в нём эта функция называется и как это вообще настраивается?
Забыл отметить. Программа универсальна, и из-за этого немного показаться может сложной при настройке. То есть она изначально не заточена конкретно под uTorrent, можно регулировать активность любой программы с помощью неё.
Было бы просто идеально сделать так, чтобы при обнаружении посторонней сетевой активности (браузер, игры и проч.) uTorrent автоматически бы снижал скорость или вообще стопился (если это например IP-телефония. Соответственно потом при отсутствии активности скорость автоматически возвращалась бы на исходные позиции.

Я в своё время писал такую программу в качестве дипломного проекта, и могу даже поделиться :-) Но на неё нет никакой документации и она плохо работает на Windows 7 из-за неподдержки этой системы драйвером перехвата сетевого трафика, который я использовал (ntkernel.com).

file.qip.ru/file/97153604/2ab9ba21/trafficmeter.html — вот тут можно скачать то, на чём разработка пока остановиласью В архиве краткий мануал по установке.
именно, а ещё необходимо чтобы он был подключен к интернету.
То есть автоматическими дверьми электричек зажимает насмерть?

Information

Rating
Does not participate
Registered
Activity