Ответы пользователя по тегу PHP
  • Какой самый востребованный mvc framework для php для фрилансера?

    p4s8x
    @p4s8x
    Yii
    Ответ написан
    Комментировать
  • Фреймворк??????????

    p4s8x
    @p4s8x
    ошибся веткой удалено
    Ответ написан
    Комментировать
  • Фреймворк??????????

    p4s8x
    @p4s8x
    Вам понравился именно Doctrine или вообще сама идея ORM?
    Могу вам рекомендавать www.yiiframework.com/ например работа с Бд через Active Record
    Ответ написан
    6 комментариев
  • Странность с session в php

    p4s8x
    @p4s8x
    Если приложение вылетает, т.е. код дальше не выполняется — значит все-таки ошибка есть.
    Попробуйте перед session_start добавить:
    ini_set('display_errors','On');
    error_reporting(E_ALL);
    Это включит отображение ошибок, а дальше варианты:
    1) Скорее всего есть ошибка PHP Warning: Cannot modify header information — headers already sent by (output started at ____ < — вот тут надо посмотреть что за строчка, самое распространенное — пробел в начале какого-то файла до <? или пробел после закрывающегося ?>
    2) Маловероятно, но можно проверить в phpinfo() — session.save_handler, если там files — смотрим права session.save_path, если нет, то разбираемся с хендлером.
    Ответ написан
    2 комментария
  • PHP is new Java?

    p4s8x
    @p4s8x
    5) Посоветуйте хороший объектный кэш в shared RAM. Не сериализацию в мемкашу и редис, не размазывание по жесткому, а именно гарантированно в раму. General purpose, с быстрым доступом из любого пыхоскрипта в общем случае. Хорошо было бы умение вытягивать в раму ветви нескалярных объектов.

    Несовсем, но почти то, что вам нужно: можно использовать связку APC и igbinary,
    Делается настройка apc.serializer=igbinary
    В итоге APC хранит в RAM, а igbinary — сериалайзер без лишних преобразований.
    Ответ написан
    1 комментарий
  • Как протестировать сайт

    p4s8x
    @p4s8x
    можно через wget -r — «скачать» без скачивания весь сайт по ссылкам и потом посмотреть логи апачи, но это часть вашей задачи.
    Ответ написан
    Комментировать
  • Что вы делали для облагораживания разработки на php?

    p4s8x
    @p4s8x
    1) Тестовый сервер
    Очень часто бывают ситуации, когда разработчик(в частности фрилансер) находится не за своим любимым рабочим местом, а где-то в гостях, в отъезде и т.д.
    Когда появляется необходимость исправить баг или внести какие-либо изменения — разворачивать за чьим-то ноутбуком/стационарником все инструменты, ставить денвер, качать все целиком, разворачивать базу. Значительно проще поставить winscp¬epad++ и внести правки на продакшн. С увеличением частоты таких «правок» код превращается в то, что описано выше.
    Для решения таких проблем в первую очередь введен регламент — запрета вносить правки на продакшн, но! одновременно с этим допускается работа на тестовом сервере! Все правки, мелкие большие с сервера коммитятся в свн(изучить консольные команды svn для разработчика не составляет проблемы… их нужно 2-3 в такой ситуации) и уже только после этого апдейт на продакшене. Для апдейта на продакшене даже сделан www-скрипт, который позволяет делать апдейт без подключения к ssh и т.д.
    Изменения в БД все только через миграции!
    Так что делайте тестовый сервер обязательно! ИМХО необходимая вещь любому проекту.

    2) Трекер! Писать и общаться через трекер воспитывает и клиента и заказчика.
    Мы на томже тестовом развернули редмайн. Позже добавили к нему tikiwiki, в которую пишутся полезные няшечки для других разработчиков и клиента. Трекер также отображает активность разработчиков для клиента. Клиенту приятно посмотреть, что вот была такая ошибка и по её исправлению был сделан такой-то коммит и вон чето поменяли.

    3) Проведение рефакторинга. Очень сложно клиенту объяснить, что это такое и зачем он нужен. Почему он должен платить за «переписывание» кода? Пишите сразу правильно, скажет он. Практика показывает, что всетаки можно доказать клиенту необходимость этого действия.

    4) Автоматические тесты.
    На тестовом сервере далеко не всегда можно увидеть все проблемы- не поломался ли чужой код.
    Использование фреймворков позволяют не разводить тотальную быдлятину и обложить код тестами.
    Ответ написан
    3 комментария
  • Как заставить pfsockopen() в php не плодить соединения?

    p4s8x
    @p4s8x
    Здесь явно присутствует мистика!

    Чтобы узнать какое конкретно соединение используется нужно воспользоваться
    stream_socket_get_name ($fp,false); // или true в зависимости от стороны
    Но мне это ситуацию сильно не спасло)
    ftell должен возвращать что-то типа позиции, но мне всегда выдавал 0 независимо от того, записалось что-то в сокет или нет.
    Опытным путем было выяснено, что если соединение не трогать (примерно) 5 секунд, то используется новое, если соединение переоткрывать слишком быстро, то он либо создает новое, либо использует одно из уже созданных, но если это одно из созданных уже не использовалось в течении 5 секунд, то он следуя «правилу» создает новое. и эти 5 секунд это не значение таймаута.
    Если например писать в сокет один символ, то сниффер покажет, что в одно соединение была произведена запись несколько раз.
    Копаем дальше)
    Ответ написан
  • Есть ли PHP оболочки под Ext.JS как под .Net есть Ext.Net?

    p4s8x
    @p4s8x
    есть проект www.ext4yii.com/ интеграция между yii и extjs(Ext JS Library 3.2.1), но, кажется, он не сильно бесплатный.
    Ответ написан
    1 комментарий
  • PHP: очень медленно работает echo

    p4s8x
    @p4s8x
    Я не совсем понял читали ли вы это:Функция echo в PHP может выполняться более 1 секунды
    Ответ написан
    Комментировать
  • Exim: письма 8192 символов отправляются заметно дольше

    p4s8x
    @p4s8x Автор вопроса
    я выяснил, что проблема на уровне exim'a, обновил текст вопроса, нужна помощь сишников
    Ответ написан
    Комментировать
  • [closed]Вставка 1 000 000 уникальных случайных значений

    p4s8x
    @p4s8x
    Можно просто сгенерировать 1 000 000 уникальных чисел(10тичной системы счисления), а затем перевести результат в четверичную систему счисления, и заменить {0,1,2,3} на свой алвафит.

    Сгенерировать можно используя базу: что-то вроде
    while ($n<1000000)
    {
    if(mysql_query("INSERT INTO keys (value) VALUES ("
    . rand_val() . ")")))
    {
    $n++;
    }

    }

    а у таблицы прописать UNIQUE KEY `value` (`uniq_value`)
    Ответ написан
    4 комментария