Вот решил выложить в открытый доступ, возможно кому то пригодится https://github.com/JeckLabs/bmsubmitter .
Вот решил выложить в открытый доступ, возможно кому то пригодится https://github.com/JeckLabs/bmsubmitter .
Читая рецензию на Deus Ex: HR (кстати классная игра всем советую) наткнулся на конкурс рабочих мест от Absolute Games. Просмотрев список участников мелькнула мысль, что у меня не хуже, и недолго думая загрузил недавно сделанную фотографию своего рабочего места.
Сама фотография сделана для экспиремента со съемкой в HDR. Ну и раз уж решил поучаствовать было бы глупо не попросить пользователей моего сайта поддержать и проголосовать за мой снимок. Все что нужно сделать это зайти по ссылке – http://www.ag.ru/iclubby/36 и поставить 3 балла моему рабочему месту. Если возникли сложности – под катом раскажу подробнее.
Остальное
И даже написать об этом забыл, впрочем в самой программе должно вспыхнуть оповещение. Интересно кто то ещё им пользуется? В общем там исправлены ошибки и доведены модули до рабочего состояния.
В очередной раз Тормоз устроил дичайший холивар в своем блоге.
Я туда боюсь заходить – зашибут ещё ненароком. Между тем, задача как мне кажется легко решается. Вот накидал за 10 минут:
- <?php
- class Cacher {
- // Время жизни кэша в секундах
- public $timeout = 10;
- // Массив с кэшем (хранится в памяти т. к. это всего лишь пример)
- private $cache = array();
- public function __call($name, $args) {
- return $this->realCall($name, $args);
- }
- public function call($callback) {
- $args = array();
- if (func_num_args() > 1) {
- $args = array_slice(func_get_args(), 1);
- }
- return $this->realCall($callback, $args);
- }
- private function realCall($callback, $args = array()) {
- $cacheKey = $this->getKey($callback, $args);
- // Выводим из памяти если существует кэш и он не просрочен
- if ($this->hasCache($cacheKey)) {
- echo "From cache with love.<br/>\r\n";
- return $this->getCache($cacheKey);
- }
- $data = call_user_func_array($callback, $args);
- $this->setCache($cacheKey, $data);
- return $data;
- }
- // Генерирует хэш ключ для кэша :)
- private function getKey() {
- $serialized = serialize(func_get_args());
- $key = md5($serialized);
- return $key;
- }
- private function hasCache($key) {
- if (isset($this->cache[$key])) {
- if ($this->cache[$key]->expire > time()) {
- return true;
- } else {
- // Удаляем просроченный кэш
- unset($this->cache[$key]);
- }
- }
- return false;
- }
- private function getCache($key) {
- return $this->cache[$key]->data;
- }
- private function setCache($key, $data) {
- $this->cache[$key] = (object) array(
- 'expire' => time() + $this->timeout,
- 'data' => $data,
- );
- }
- }
- ?>
И пример использования:
- <?php
- require './Cacher.php';
- $cacher = new Cacher;
- // Через __call
- $cacher->file_get_contents('//jeck.ru');
- $cacher->file_get_contents('//jeck.ru');
- class TestClass {
- private $param = 'paramValue';
- public function testMethod($url) {
- return file_get_contents($url);
- }
- }
- $testClass = new TestClass;
- // Через call что бы передать имя и метод класса
- $cacher->call(array($testClass, 'testMethod'), '//jeck.ru');
- ?>
Вот такое письмо сейчас прибыло на почту:
Здравствуйте!
Высылаю анкету на организацию рекламной кампании для Вашего сайта – jeck.ru
Пожалуйста, заполните необходимые поля и вышлите ее на Email: valimaster@yandex.ru
После чего, Вам будет предоставлен доступ к личному кабинету и счет для оплаты.
С уважением, Владислав.
По любым возникшим вопросам обращайтесь:
Телефон: +7 (495) 585-62-89
ICQ: 569775857
Надеюсь теперь их email и icq попадут в спам базы.