Ответы пользователя по тегу PHP
  • Реально ли эмигрировать PHP программисту в возрасте?

    Возможно. Но вопрос не стоит о том, чо Вы PHP-программист, или в возрасте. Кто-то и будучи молодым GO-программистом не может переехать, а есть пожилые бармены\уборщики, которые делают это с легкостью. Тут от Вас зависит всё.
    Добавлю, что когда первый раз решил уехать с Родины, спустя пол гола на чужбине начал волком выть от внезапно проснувшейся ностальгии и патриотических чувств. Да так, что еще через пару месяцев я вернулся домой. Но спустя какое-то время всё это прошло и я ухеал вновь. С каждым разом покидать родную страну всё легче и легче и в какой-то момент я заметил, что больше вообще не привзяан ни к чему в России и возвращаться смысла уже нет никакого, кроме как повидать родственников. Но на это мне вполне хватает и недели. По этому, прислушайтесь к одному из советов данных здесь - попробуйте пожить за бугром не сжигая тут мостов. Это банально не всем подходит и многие потом мечтают уехать назад, но по какой-то причине уже не имеют такой возможности и в итоге в погоне за счастьем становятся невероятно несчастными людьми.

    По поводу трудоустройства - СНАЧАЛА находите работу, а потом переезжаете. Это более чем реально. Может быть, раз Вы в возрасте это стоит пояснений, но так получилось, что теперь можно искать УДАЛЕННУЮ работу через интернет. Зарплата зависит только от Ваших навыков и наглости, знаю людей, которые зарабатывают и по 70$\час, работая удаленно PHP-разработчиками. В общем, вспоминайте то время, когда казалось, что Вам море по колено и дерзайте, ведь так оно на самом деле и есть и все зависит от Вас.
    Ответ написан
  • Где вытаскивать настройки?

    Лучше хранить конфигурацию в отдельнов файле конфигурации, например, loginner.config.php
    Ответ написан
  • Почему в автозагрузчик 2 раза бросается вызов класса?

    Я думаю, что по этому:
    use patterns\Singleton;

    namespace base\patterns;

    Попробуйте вместо use patterns\Singleton;
    Написать use base\patterns\singleton;
    Ответ написан
  • Виновен ли я в самописном движке?

    Автор, ты молодец. Комментариев непосредственно по теме тебе дали уже достаточно, дам тебе немного советов, основываясь на том, что я в тебе увидел по постам здесь и по сути вопроса.
    1. Ты не застрахован от неадекватных заказчиков до тех пор, пока не требуешь подробного ТЗ. Как правило, по ТЗ можно довольно чётко определить, что за "фрукт" этот заказчик.
    2. Если так получилось, что ты таки нарвался на неадекватов - не принимай всё близко к сердцу. Добавление в черный список и нежелание разобраться в ситуации никак нельзя назвать адекватным поведением, ведь так? Подумай, сильно ли тебя беспокоит репутация у таких заказчиков, или, быть может стоит обрести ее у нормальных(или вообще у сообщества)?
    3. То, что ты сделал в учебных целях хорошо характеризует тебя, как разработчика, молодец, продолжай в том же духе, но лучше на личных проектах.
    4. Познакомься с шаблонами проектирования и фреймворками
    5. Я думаю, что работа в веб-студии или фрилансером на "сайтах под ключ" - не твой путь, если ты решил написать свою CMS в учебных целях, смотри в сторону компаний, которые разрабатывают крутые, большие проекты. Как правило нормальный индикатор - использование фреймворков и довольно жесткие требования к знаниям(при том не конкретных технологий, а общих принципов). Устройся в такую компанию Junior-разработчиком, или вообще стажером. Хрен с ним, что 15000(хотя на самом деле, Junior вроде как от 30 стоит в моем миллионнике), ты получишь опыт, который за деньги не купишь. Но я очень рекомендую - не занимайся этими сайтами под ключ и поработай фулл-тайм в фирме, которая делает что-то классное, не пожалеешь!)
    Ответ написан
  • Как автоматически вызвать функцию в PHP?

    Коротко - нет.

    Давайте с Вами разберемся сначала, как Вы себе это представляете =)
    Допустим, мы нашли способ вызывать нечто автоматически, чтобы избавится от вашего start() (кстати, start() наверное не очень подходящее название, имхо, но в данном случае get() как-то логичней). Тогда резонно встает вопрос, в какой момент вызывать эту функцию? Перед сборкой мусора\уничтожением объекта? Тогда у Вам придется ждать до тех пор, пока приложение не решит собрать мусор, или, опять таки, явно уничтожать объект. А PHP выполняет операции синхронно(если не задаваться целью делать это асинхронно), соответственно, конечный пользователь будет ждать. И прождать он может долго.
    Или может попробуем в конце вызова каждой функции из цепочки? Тогда проблема в том, что вы сделаете множество запросов к базе.

    А вообще - посмотрите, как реализованы компоненты QueryBuilder в попоулярных фреймворках и вы увидите, что в них всех в итоге надо использовать какой-то метод, наподобии вашего start()
    Ответ написан
  • Почему PHPStorm не распознаёт скалярные типы в тайп-хинтинге?

    На официальном сайте PHPStorm говорится о том, что на данный момент, поддержка PHP7 лишь частичная, что как бы намекает на то, что новые фичи 7й версии могут не работать, тайп-хинтинг для скалярных типов штука новая.
    Ответ написан
  • Как продумать регенерацию жизней на php?

    Я бы занес в базу такой параметр, как скорость регенерации, при каждом обращении клиента к серверу - проверял бы, не пора бы регенерировать жизнь. Для того, что бы это было безопасно, вам надо проверить не только время нанесения последнего урона, но и время последней регенерации.
    Иными словами, в базе будем хранить:
    урон(кол-во, время наненсеня)
    регенерация(сколько едениц регенерировать, как часто, время последней регенерации)
    При обращении клиента к серверу(рекомендую сделать некий запрос poll, который будет запрашивать необработанные игровые события, такие как регенерация) спрашиваем, сколько у игрока жизней. Если меньше 100, то проверяем, дату нанесения последнего урона и можем ли мы пользователю отрегенить жизнь, если да, то делаем это и возвращаем клиенту событие регенерации, которое он отрисует уже как хочет.
    Регенирировать мы можем в следующих случаях:
    1. Пользователь получил урон, но еще небыло регенераций, а время регенерации уже >= текщему времени - время нанесения урона
    2. Пользователь получил урон, регенерации были, и время регенерации уже >= текущему времени - время последней регенерации


    По такой схеме Вы сможете не только в "реальном времени"(конечно, это не websockets, но все же) регенирировать игрока, но и, например, если он был в оффлайн и не поллил игровые события вычислить сколько жизней он отрегенил, пока был оффлайн.

    Полл-запрос можете делать, например, каждую секунду. Ну и вообще, присмотритесь к идеям, которые я Вам изложил, особенно про игровые события и полл. Я имею некий опыт в геймдеве, в том числе на PHP и эта практика для небольших игр довольно неплохо себя зарекомендовала.
    Ответ написан
  • Где и в каких случаях в php (ООП) используется __constructor?

    Воспринимайте конструктор как то, что срабатывает при вызове:
    new Object()
    Способов применения масса. Я думаю, вы часто видели, если что-то писали на ООП-PHP конструкции типа
    new Object($var, $anotherVar);

    Выше ответили про присвоение значений свойствам класса, но это может быть и что-то более интересное, например, оповещение приложения о создании объекта, получение файлов конфигурации и настройка объекта из них и так далее, и тому подобное.
    Ответ написан
  • Как получить значение объекта?

    Получить список публичных свойств объекта можно так:
    $foo = new Foo();
    
    $reflect = new ReflectionClass($foo);
    $props   = $reflect->getProperties(ReflectionProperty::IS_PUBLIC);

    Если в вашем объекте верхнего уровня(который содержиьт объект XXXX) содержатся только объекты, от которых вам надо будет получить свойства, можно провернуть нечто вроде:

    $names = array();
    $ids = array();
    foreach($props as $property){
        $propName = $property->getName();
        $names[] = $object->$propName->name;
        $ids[] = $object->$propName->id;
    }


    Или как то так. Я надеюсь, общая мысль ясна и я правильно понял вопрос
    Ответ написан
  • Как передавать данные из node.js в php?

    @sprosvirnin Не совсем тогда понятно, зачем Вам nodeJS, если php собирается работать в 1 потоке? Максимальная пропускная способность определяется самым узким местом канала, у вас PHP скорее всего намного уже ноды. У Вас там, как я понял, вся логика и модели.

    По теме вопроса: мне самым логичным кажется варинат с http-запросами. Так работают сервисы. Вы не будете зависить от архитектуры, сможете легко переносить части приложения по разным серверам и т.д. Единственное - может есть смысл подумать о websocket, но я ничего на эту тему не знаю.
    Ответ написан
  • Правильная архитектура - как реализовать вывод реал-тайм логов в веб?

    Можно так же просто сделать на сервере метод, который будет считывать файл с логами, а на странице делать AJAX-запрос к этому методу.Тут уж, кто во что горазд. Но готовые решения, конечно, лучше.
    Ответ написан
  • Как и чем быстрее всего начать зарабатывать на программировании/веб-программировании?

    Я проживаю в Ташкенте. WEB студий как таковых здесь нет, а если и есть, только те, которые штампуют ГС на шаблонах. Опыта в них не получишь, а денег тем более. Поэтому фриланс для меня единственный выход.


    Вообще поражаюсь, почему так много говорят о веб-студиях? Скучнее работы, по моему, просто не найти. Неужели вы думаете, что веб это только создание сайтов? А как же банковский сектор? Enterprise веб-приложения, которые, как правило, не доверяют веб-студиям? В таких местах вы получите куда больше опыта, полезных практических навыков и быстрее выдете на хороший уровень зп. О фрилансе, как уже писали выше, лучше забыть. Особенное, если хотите стать действительно хорошим специалистом.

    Немного о себе: в 20 лет я устроился на первую работу. Это была стажировка в небольшой конторе в нашем городе за 15 000 \ мес. на руки. С этого времени(всего лишь год) я сменил 3 места работы и моя зарплата неприлично выросла вместе с должностью. Я обзавелся связями и имею еще 2 постоянных удаленных работы. То есть не попроектно, а именно постоянно. Таким образом, имея 3 работы, на 2 из которых я устроен полностью официально со всеми социальными плюшками типа ДМС я могу зарабатывать раз в 5 больше, чем даже ооочень хороший фрилансер. Вчера отмечал ровно год со своего первого рабочего дня в жизни. Работаю старшим программистом, тех. лидом и системным архитектором.
    Ответ написан
  • Может ли в highload проекте c архитектурой frontend + REST backend использоваться PHP на обеих сторонах?

    стоит ли придумывать оптимизации в логике обмена фронтенда с бакендом в реализации на Yii+PHP или уже есть более производительные решения на других языках?

    Имхо, не стоит. Вообще говоря - у вас какое - то невероятно странное решение на мой взгляд. То есть по сути что вы делаете? Ага, пользовательский браузер устанавливает соединение с Вашим "фронтендом", отсылает ему HTTP-запрос, ваш "фронт" его получает, каким-то образом обрабатывает, устанавливает соединение с бэком, отсылает ему запрос, бекэнд его получает, обрабатывает каким-то образом, отвечает вашему фронту и потом фрон опять каким-то образом обрабатывает полученный ответ и отдает нечто клиенту.
    Вам не кажется что это решение в принципе не может подходить под определение Highload?
    У меня в крупном высконагруженном проекте есть, конечно, разделение на сервисы, которые физически на разных серверах, но они всегда отдают полную информацию в ответ на запрос(то есть если по запросу ясно, что это требуется для конечно пользователя, я отдам сразу html) и реализовывают принципиально разный функционал. Делается это для того, что бы модули друг от друга не зависили, то есть - навернулось что-то одно, работает другое. А в вашем случае зачем это? Бекэнд сможет работать, да, а фронт нет и толку от бека для клиента нет никакого. Короче, я, мягко говоря удивлен вопросом :=)
    Ответ написан
  • Каким образом выложить iframe приложение для Вконтакте?

    И "Вконтакте" и Facebook имеют очень подробную документацию. Есть даже туториалы "шаг за шагом".
    Держите, ищется за минуту. vk.com/dev/IFrame_apps
    Ответ написан
  • Куда уйти с PHP?

    В будущем когда потребуется писать высоконагруженые системы - скорее всего выучу джаву. Или вообще уйду от веба. Кто знает. Пока что надо познать вершины пхп

    Для высконагруженных систем JAVA - не лучший выбор. А вообще, на Вашем месте, я бы подтягивал общие темы. Алгоритмы, методологии и методики программирования. Тогда, при должном подходе, Вам не составит труда писать на любом языке, соответствующем знакомой парадигме.
    Ответ написан
  • Как передать многомерный массив в node.js?

    Писал на Node, никогда не возникало проблем с созданием многомернго массива, будь то из php, будь то от формы через http.
    Как делал? json_encode($data); -> передаете, через GET или POST
    На принимающей стороне нечто вроде JSON.parse();
    Если у вас вылазит ошибка unexpected token o, попробуйте вывести полученное значение в консоль и загнать в любой онлайн-парсер JSON. И вам все сразу станет ясно, что и где пошло не так. В общем, никаких проблем, после вывода в консоль возникнуть не должно)
    Ответ написан