• Как правильно использвать lamp-server от tasksel(ubuntu) для разработки?

    buloshnik
    @buloshnik
    мужик

    А как на счет того, что бы хоть немного поковыряться самому? Вот Первая ссылка из google по запросу "ubuntu lamp" и вот еще ссылка. А вообще ковырять default не рекомендуется, лучше как в примере по ссылке его скопировать в mysite например, а потом сделать ссылку в /etc/apache2/sites-enabled. Удачи.

    Ответ написан
    Комментировать
  • Обработка предопределённых констант в PHP

    SkiF_TLT
    @SkiF_TLT
    <?
    
    for($i=0;$i<1000000;$i++) echo __FILE__;
    
    ?>
    


    Результат:

    poletaew@poletaew:~$ time php const.php &>/dev/null
    
    real	0m0.170s
    user	0m0.076s
    sys	0m0.092s
    


    Меняем код по вашему алгоритму:

    <?
    $file = __FILE__;
    for($i=0;$i<1000000;$i++) echo $file;
    
    ?>
    


    Результат:

    poletaew@poletaew:~$ time php const.php &>/dev/null
    
    real	0m0.173s
    user	0m0.092s
    sys	0m0.080s
    


    Так что проблема не в обработчике предопределенных констант. Не в ту сторону копаете. Пример вашего кода, конечно, помог бы понять проблему глубже, но как сейчас вопрос описан — такой и ответ на него.
    Ответ написан
    Комментировать
  • Переход с PHP на …?

    Mithgol
    @Mithgol
    Присоединяюсь к рекомендациям попробовать Node.js, аргументом в пользу которого является то обстоятельство, что веборазработчику при его изучении не приходится изучать заодно новый язык: в Node используется JavaScript, на котором и без того работает клиентская часть сайтов.

    Таким образом для перехода на Node достаточно изучить API Node и освоить выбор нужных готовых модулей с открытым исходным кодом, разработанных сообществом. Модули можно находить по списку в вики или искать по ключевым словам на сайте npm.

    В частности, готовых NoSQL-модулей там дофигищща. (Есть даже NoSQL-средства, специально разработанные для Node — в частности, NeDB.)
    Ответ написан
    Комментировать
  • Какой движок интернет-магазина наиболее производительный?

    На 100 тыс товаров, с фильтрами и т.п. я бы почти от всех CMS отказался и использовал бы фреймворки.
    Ответ написан
    1 комментарий
  • PHPStorm, как средство для повышения кпд?

    nazarpc
    @nazarpc
    Open Source enthusiast
    Компьютерных мощностей не много.

    PhpStorm кушает прилично ресурсов со статическим анализом кода, на планшете пробовал запускать — это было мучение, но если машина потянет — оно того стоит, шикарная IDE.
    К предыдущему ответу:
    Есть сниппеты, Emmet/Zen Coding, на лету превращает SASS/SCSS/LESS в CSS, алалогично есть для TypeScript, можно настроить вручную и другие, эти с коробки. Есть автоматическое сжатие с помощью YUI Compressor для JS/CSS.
    LiveEdit тоже помогает (использую для написания документации в html формате).
    Интеллектуальное авто дополнение на основе самостоятельного анализа и PhpDoc секций (в последних сборках подсказывает даже элементы массивов).
    Много там ещё чего есть.
    Ответ написан
    1 комментарий
  • PHPStorm, как средство для повышения кпд?

    EugeneOZ
    @EugeneOZ
    Там можно переопределять hot-keys и есть плагины для всяких там манипуляций с кареткой.
    Но время IDE экономит не только (и не столько) в редактировании текста, а в:
    1) статическом анализе кода на ошибки (не синтаксические). Это миллионы (даже миллиарды) человекочасов. Это мегавещь.
    2) рефакторинге — можно за пару секунд поменять название метода во всём проекте и быть на 100% уверенным, что нигде ничто не забылось. И это далеко не все возможности рефакторинга.
    3) интеграции с CVS (git) и другими сторонними системами.

    «Запоминает файлы, несохраненные изменения.» — файлы проекта оно запоминает, конечно, это ж IDE. Но вот «несохранённых» изменений именно в этом семействе IDE нет — всё сразу сохраняется само. Сначала непривычно, но это очень хорошая штука :)
    Ответ написан
    Комментировать
  • Есть ли скрипт для одновременного постинга в социальные сети?

    Если Вас интересует кросспостинг для определенной CMS — имеет смысл гуглить именно в этом контексте. Вариантов предостаточно.
    Если кросспост с самописа — тут тоже придется прийти к самописным решениям, думаю. Максимум того, что вы сможете найти — инкапсулированное решение, которое так или иначе придется интегрировать.

    Если речь идет не о кросспосте с некого ресурса в социалки, а «автономного» постинга — тут тоже вряд ли найдется решение для разных платформ. Точно есть решения для ВК (и не одно). В основном там настраивается плановый постинг.

    Проблема в том, что «импортные» разработки не берут во внимание ВК, одноклассники зачастую.

    Поэтому варианты следующие:
    * самопис
    * разные сервисы для разных сервисов :)
    * использовать какую-то CMS, для которой есть лучшее решение (думаю, этой cms мог бы стать wordpress, как претендент на звание «cms с лучшей комьюнити»)

    А вообще, исходя из моих познаний в SMM — вряд ли стоит «в лоб» кросспостить одинаковые посты в разные социалки, т.к. контент каждой публикации должен обуславливаться в первую очередь аудиторией, а в ВК/одноклассники/FB — она, как ни крути, разная.
    Ответ написан
    Комментировать
  • CSS zoom есть ли аналог?

    @relic
    Попробуйте следующий код:
    var n = 2;
    document.body.style.MozTransform="scale(n)"; // для FireFox
    document.body.style.OTransform = "scale(n)"; // для Opera
    
    Ответ написан
    5 комментариев
  • JQuery: как сделать свое событие не через bind?

    Mithgol
    @Mithgol
    Решение ужé нашли Вам, но можно заметить, что оно не в стиле jQuery, равно как и сама поставленная Вами задача.

    В jQuery почти все методы обработки событий называются простыми глаголами: .blur(), .change(), .click(), .error(), .focus(), .hover(), .load(), .ready(), .resize(), .scroll(), submit() и так далее.

    Следовало бы поэтому и Ваш метод назвать не «onEnterPress», а попросту «enter».
    Ответ написан
    Комментировать
  • Как в php отделить объявление класса от его реализации?

    @balloon
    Мне кажется, что:
    1. В итоге Вы придете к абстрактному классу
    2. Все таки придеться создать dependency container, если вы не хотите что бы родительский класс знал о наследниках.

    abstract class DataKeeper {
      protected $data;
    
      public function setData($data) {
        $this->data = $data;
      }
    
      public function getData() {
        return $this->data;
      }
    
      abstract public function save()
      
      abstract public function process()
    }
    
    class FileDataKeeper extend DataKeeper {
    
      public function save() {
        // implementation
      }
    
      public function process() {
        // implementation
      }
    }
    
    class Container {
      protected static $classes = array();  
    
      public static function register($alias, $class) {
        self::$classes[$alias] = $class;    
      }
    
      public static function get($alias) {
        if (!isset(self::$classes[$alias]))
    	throw new Exception("...");      
    
        $className = self::$classes[$alias];
        return new $className();
      }
    }
    
    
    // bootstrap.php
    Container:register("dataKeeper", "FileDataKeeper");
    
    // SomeWhere.php
    $dataKeeper = Container::get("dataKeeper");
    
    Ответ написан
    Комментировать