Задать вопрос
  • Самый быстрый веб-сервер php для windows?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Как добиться того, чтоб сайты (которые пишутся с помощью php-фреймворков) на локальном веб-сервере просто летали?

    web сервер выполняет транспортную роль по большей части. Что бы сайт "летали" - их нужно писать так, что бы "летали"))

    Какой локальный сервер использовать?

    nginx+php-fpm

    Пробовал много чего: vagrant, ubuntu-сервер разворачивал сам. Но эти варианты для меня не удобны.

    Вам шашчеки, или ехать?

    NGINX вообще ни разу не пробовал. Его хвалят, но как его устанавливать и настраивать в Windows я не нашёл.

    Вы того, не воспринимайте win как серверную ОС и все встанет на свои места))
    Ответ написан
    2 комментария
  • ORM or NotORM? Что лучше выбрать?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    1 комментарий
  • Как возвращать нескольких json за один веб запрос?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Каким образом возможно отправив один ajax получать данные и сразу же их обрабатывать, не дожидаясь окончания запроса?

    Вы ищите websockets. Но там есть куча нюансов.

    т .е я хочу получать json массивы(ссылки на фото) и сразу же их выводить в рамках одного запроса

    В чем проблема то? Оборачиваете в некую коллекцию и ее уже ее сериализуете в json.

    на сервере крутится php - codeigniter.

    NO! Не тыкайте труп палкой, пусть уйдет достойно.

    не хочется пулять много ajax на запрос за каждой порцией данных.(из-за постоянных переоткрываний соединений с дб ,перезагрузки ядра фреймворка и т.д ,)

    Вы пытаетесь решить надуманную проблему методом, который ее не решит.
    Нагрузка с БД как правило снимается за счет:
    * настройки индексов
    * оптимизации запросов
    * кэширования.
    ...

    ...хочется чтоб все обработывалось одним процессом на сервере

    Круто, зачем вам php тогда?

    в сторону какой технологии смотреть, подскажите composer библиотечку и т.п?

    Как минимум:
    * SOLID
    * PSR-2,3,4,7
    * Symfony / Silex
    Ответ написан
    3 комментария
  • На каких площадках (аля habrahabr) вы рассказываете о своих opensource проектах?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Хабр уже давно не тортом стал

    Спорное заявление.

    https://www.opennet.ru/
    Ответ написан
    4 комментария
  • ООП в высоконагруженных проектах считается устаревшим?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Обычная демонстрация эффекта Даннинга - Крюгера.
    Ответ написан
    Комментировать
  • Маршрутизация, имеет ли такой подход право быть?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    1. Use HttpFoundation Luke!
    2. Ваш роутер, был бы не плох лет эдак 10 назад, но не сейчас, посмотрите роутинг symfony, или silex
    3. ОБЯЗАТЕЛЬНО читаем: PSR-1, PSR-2, PSR-4

    <?php
    namespace lib;
    class Router {
    // Может rules все таки?))
          private $rulls; // Зачем тут отступ?
    // phpDocumentor - ваш друг, прописывайте ОБЯЗАТЕЛЬНО типы данных.
        private $uri;
        private $controller;
        private $params = [];
    
        function __construct(){
            $this->setUri(); // У вас нет такого метода, есть setURI
            $this->setController();
            $this->setParams();
            $this->setRulls();
        }
    // Что будет, если $_SERVER['REQUEST_URI'] = '/?', или '/////'?
        private function setURI(){
    // Подобное форматирование может и ок для шаблонов, и то где-то, где вообще незаметно, но не тут читаем про PSR-2
            if($_SERVER['REQUEST_URI'] != '/'):
                $this->uri = explode('/',trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/'));
            endif;
        }
    // Я правильно понимаю, вы хотите сказать, что контроллер - это некий элемент массива (похоже string|null)? Обычно контроллер - это объект...
        private function setController(){
            $this->controller = array_shift($this->uri);
        }
    // В этом методе вы по тупому копируете элементы, зачем?
        private function setParams(){
    // Подобное форматирование может и ок для шаблонов, и то где-то, где вообще незаметно, но не тут читаем про PSR-2
            foreach ($this->uri as $value):
                $this->params[] = $value;
            endforeach;
        }
    
        private function setRulls(){
    // NO! загрузка данных - это НЕ задача роутера, от слова СОВСЕМ
            file_exists(SITE_ROOT.DS.'routing'.DS.'rulls.php') ? $this->rulls = include(SITE_ROOT.DS.'routing'.DS.'rulls.php') : die('Файл с конфигурацией роутинга где-то затерялся, извини.');
        }
    // В методе ничего нечего спасать, просто удалите его.
        public function run(){
    // НЕ ИСПОЛЬЗУЙТЕ ГЛОБАЛЬНЫЕ ПЕРМЕННЫЕ
            $_REQUEST = array_merge($_REQUEST, $this->params);
            $controller = '\\controllers\\'.$this->rulls[$this->controller]['controller'];
            $action = $this->rulls[$this->controller]['action'];
            $controller = new $controller; // Что будет, если такого класса нет?
            $controller->$action(); // Что будет, если такого метода нет?
        }
    }
    Ответ написан
    Комментировать
  • Технологии для реализации веб-проекта?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    по функционалу и внешнему виду сопоставимый с 888sport.com, в ближайшее время будем заниматься поиском опытного фуллстак веб-разработчика.

    Плохая идея искать fullstack. Сайт такого уровня потребует команду инженеров. Есть такая штука bus-factor, почитайте на досуге.

    В данный момент я склоняюсь к MARS (MySQL, Apache, Ruby, Solaris), HTML5, CSS, JavaScript, Git, Agile.

    Технологии выбираются на основании ТЗ + обязательный этап начального проектирования. Их должен выбирать инженер. При этом далеко не факт, что модные технологии будут лучшим решением. Тот же agile далеко не всюду можно насадить. Solaris - неясно зачем? Ruby - вот тут без ТЗ не разобраться.

    Разработка будет проходить на Mac Os

    Вот это не вам решать))

    дизайн интерфейса разрабатывается в Sketch.

    Вам шашечки, или ехать? Sketch - это инструмент, дизайн - это результат. Не стоит ограничивать дизайнера в инструментах.
    Ответ написан
    1 комментарий
  • На чем легко писать браузерных ботов(авторегеры, боты к браузрекам и т.д. и т.п.)?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    PhantomJS
    Ответ написан
    Комментировать
  • Насколько код ООП и что бы вы посоветовали по его улучшению?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    <?php
    // PSR-1, PSR-2, PSR-4 Читаем и пользуем!
    // namespace все дела... "Model_admin" - это прошлое.
    // phpDocumentor - твой друг, прописывай всюду типы данных
    class Model_admin extends Model
    {
    // Лишний перевод строки
        private $name;
        private $password;
        private $code;
        private $mail;
    // Не информативное название. get model admin... что бы это значило...
        public function get($login, $password) {
    // Где проверка аргумантов? Влететь может что угодно
            $this->name = $login;
            $this->password = $password;
    // Модель НЕ должна управлять подключением к БД, это должно выполняться выше в коде
            $this->db_connect();
    // Код вообще проверялся?)) у вас закрывающей строки нет.
            $result = msql_query("SELECT 'login', 'password', 'mail' FROM 'admin_authorization'";
    // сие уже deprecated, забудьте про mysql_*** функции, используйте PDO
            $arr = mysql_fetch_array($result);
    // Зачем нужен цикл, это дро*ба БД!!! Вытягиваете одну запись по логину и проверяете соответствует ли пароль
            do {
    // Лишний перевод строки
                if ($login === $arr['login']) {
    // Лишний перевод строки
                    if (
                        md5( md5( trim( $password ))) === $arr['password']
                    ) {
                        $this->mail = $arr['mail'];
                        $this->random_code();
    // Перед return лучше делать перевод строки
                        return true;
                    }
    // Лишний перевод строки
                }
    // сие уже deprecated, забудьте про mysql_*** функции, используйте PDO
    // Присваивание в условиях управляющих кнострукций лучше не делать, это операции разного характера
            } while ($arr = mysql_fetch_array($res));
    
            return false;
    // Лишний перевод строки
        }
    
        private function random_code($length = 15) {
    // Где проверка аргумантов? Влететь может что угодно
            $symbols = '0123456789abcdefghijklmnopqrstuvwxyz_-~!+*%$#&';
    
            for ($i = 0; $i < (int)$length; $i++)
            {
                $num = rand (1, strlen ($symbols));
                $this->code .= substr ($symbols, $num, 1);
            }
    // сие уже deprecated, забудьте про mysql_*** функции, используйте PDO
            $bool_update = mysql_query('UPDATE "admin_authorization" SET code="'.$this->code.'" WHERE login="'.$this->name.'"');
    // Вот так писать плохо, всегда используйте фигурные скобки.
            if ($bool_update) $this->send_code();
    // Лишний перевод строки
        }
    
        private function send_code() {
    // Модель НЕ должна отправлять письма, под отправку обычно пишется отдельная подсистема/сервис
            mail ($this->mail, "Admin code", $this->code);
        }
    
        public function check_code($user_code) {
    // Где проверка аргумантов? Влететь может что угодно
    // SQL инъекция!!!!
    // сие уже deprecated, забудьте про mysql_*** функции, используйте PDO
            $this->code = mysql_query("SELECT 'code' FROM admin_authorization WHERE code='".$user_code."'");
    // Вот так писать плохо, всегда используйте фигурные скобки.
            if ($this->code != '') return true;
        }
    // Лишний перевод строки
    }
    Ответ написан
    13 комментариев
  • Что нужно знать для создания приложения для видеосвязи?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Поисковые слова: video streaming, wowza, red5, ffmpeg-server, rtmp

    Знать нужно много, что именно - зависит от конкретного ТЗ и выбранных технологий для его реализации
    Ответ написан
    Комментировать
  • Какая версия php сейчас актуальна для разработки?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Ответ написан
    Комментировать
  • Как определиться с фреймворком?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Мне не понятно, это разделение фреймворков на группы, что они делают и для каких задач предназначены фреймворки из первой группы и из второй?

    1-я группа работает на клиенте (в браузере)
    2-я группа работает на сервере

    Почему они так разделены?

    Разные платформы выполнения

    Используют ли их вместе, или только один?

    Зависит от проекта.

    Какие задачи решают фреймворки из первой и второй группы?

    1-я БЛ (бизнес логика) отображения и взаимодействия с пользователем
    2-я БЛ обработки данных и взаимодействия с клиентом (браузером)

    Для какое задачи достаточно будет знать только ангуляр, а для какой только рельсы?

    Только Angular - задачи frontend
    Только Rails - задачи backend
    Ответ написан
    2 комментария
  • Как сделать ns сервер на php для создания хостинга?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Как сделать ns сервер на php для создания хостинга?

    Всего 3 шага:
    1. Прочитать спецификации:

    • RFC 1034 — Domain Names — Concepts and Facilities
    • RFC 1035 — Domain Names — Implementation and Specification
    • RFC 1912 — Common DNS Operational and Configuration Errors
    • RFC 1591 — Domain Name System Structure and Delegation
    • RFC 1713 — Tools for DNS Debugging
    • RFC 2606 — Reserved Top Level DNS Names


    2. Осознать, что это было глупой затеей.
    3. Прочитать howto по настройке BIND
    Ответ написан
    7 комментариев
  • Запуск PhpStorm с удаленного сервера?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Может у вас действительно очень специфический use-case, но IDE на сервер, как правило - хреновая идея.
    Ответ написан
    Комментировать
  • Какими способами можно поддерживать постоянно запущенное количество php-демонов?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    supervisor
    Ответ написан
    Комментировать
  • Какие преимущества хранения сессий в бд?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    в чем преимущество?

    Нет преимуществ. Ваша пара человек не понимает о чем говорит.

    Для начала потому что сессий у одного пользователя может быть множество, и это вполне нормально. Залогиньтесь в двух браузерах одним пользователем например.

    Сессия как правило - это необходимые горячие данные пользователя, что нужно сохранить между запросами. БД - одно из самых медленных хранилищ этих данных.

    В файлах кстати тоже не стоит хранить. При большой нагрузке io будет подтормаживать.

    Длительный период сессии обычно не хранятся, вместо этого на клиент задается токен, по которому человек через много времени может автоматически авторизироваться.
    Ответ написан