• Как узнать источник трафика?

    XXXXPro
    @XXXXPro
    Fullstack Web developer
    Вообще-то даже с HTTPS получить HTTP_REFERER вполне можно (если речь идет не о перехвате чужого траффика, а о своем собственном сайте). Другой вопрос, что Яндекс некоторое время назад стал шифровать текст запросов и делать его доступным только через Метрику (но последнее с https не связано). Но сам факт того, что пользователь пришел из Яндекса, это опредлить не помешает.
    Ответ написан
    Комментировать
  • Создание вероятности на php. Можете помочь?

    sergiks
    @sergiks Куратор тега PHP
    ♬♬
    Алгоритм:
    1. сложить вероятности найденных призов
    2. выбрать случайное число от 1 до суммы
    3. определить, в «зону» какого из призов оно попадает

    Примерно:
    $stock = [
    	["id"=>1, "ver"=>13, "name"=>"gta v"],
    	["id"=>2, "ver"=>48, "name"=>"gta sa"],
    	["id"=>3, "ver"=>119, "name"=>"chess"],
    ];
    
    $total = 0;
    foreach($stock as $v) $total += $v["ver"];
    
    $rnd = rand(1, $total);
    
    $run = 0;
    foreach($stock as $v) {
    	$run += $v["ver"];
    	if( $rnd <= $run) break;
    }
    
    $prizeName = $v["name"];
    Ответ написан
    3 комментария
  • Как заменить блок div через ajax?

    doniys_a
    @doniys_a
    Backend-разработчик (Php, node.js, python, ruby)
    а что мешает рендерить оба блока и в зависимости от ситуации скрывать/показывать нужный блок ?
    Ответ написан
    2 комментария
  • Есть ли в laravel обычная модель, не Eloquent ORM?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Это обычный класс. Есть ли в РНР классы? Опять же, для обработки конкретно форм есть FormRequest'ы, для валидации всего прочего есть просто валидатор.
    Ответ написан
    5 комментариев
  • Какую взять ORM для своего проекта?

    @D3lphi
    Возьмем ORM из двух популярных PHP-фреймворков. Первая будет Eloquent ("Родная" для фреймворка Laravel), а вторая - Doctrine (Одна из доступных ORM в фреймворке Symfony). Кардинальным отличием этих двух "систем" является то, что первая разработана на основе паттерна Active Record, а вторая - с использованием паттерна Data mapper. Чем же они отличаются? Приведу абстрактные примеры кода для первого и второго паттерна:

    Active Record:
    $user = new User(); // Создаем "сущность" нового пользователя.
    $user->login = 'D3lph1'; // Устанавливаем его логин равным 'D3lph1'.
    $user->password = '123456'; // Устанавливаем пароль этому пользователю.
    $user->save(); // Сохраняем пользователя.


    Все, новый пользователь создан и находится в базе данных. Теперь, Data mapper:
    $user = new User();
    $user->login = 'D3lph1'; // Устанавливаем его логин равным 'D3lph1'.
    $user->password = '123456'; // Устанавливаем пароль этому пользователю.
    
    $manager = ... // получаем объект менеджера (Например, из DI контейнера).
    $manager->persist($user); // "Скармливаем" новоиспеченного пользователя нашему менеджеру.
    // $manager->persis($user1); // Мы можем создать еще одного пользователя и уведомить менеджер об этом.
    // $manager->persis($user2); // И еще одного...
    $manager->flush(); // После выполнения этого метода данные отправятся в базу данных.


    Очевидно, первый способ куда проще. Но не все так просто. Дело в том, что паттерн Active Record нарушает принцип единственной ответственности (Single responsibility SOLID). И поэтому, в какой-то степени, может считаться антипаттерном. (Но это ни в коем случае не значит, что его не нужно использовать, для большинства проектов "хватит" за глаза). Наша сущность пользователя делает слишком много. Она не только представляет данные, но и еще работает с ними. В больших проектах это может усложнить поддержку кода. Data mapper, напротив же, разделяет представление данных в сущность (user) и работу с данными (manager, в данном примере. Также, за работу с данными отвечает репозиторий. Вы столкнетесь с ним, как только вам потребуется получить данные из БД (Doctrine)). В небольших проектах вы не заметите особой разницы. Разве что во втором случае увеличится количество классов. Так, в Eloquent вы создаете 1 модель, а в Doctrine - сущность и репозиторий.

    Все современные ORM включают в себя также, так называемые, query builder'ы. Они помогают отказаться от языка запросов, такого как SQL. Вы будете составлять запросы таким образом:
    $result = $qb
          ->select(['id', 'login'])
          ->where('id', '<>', 3)
          ->get();


    Собственно, query builder'ы помогают абстрагироваться от конкретной СУБД. То бишь, вы написали запрос 1 раз, а затем от того, какую СУБД вы используете будет зависеть выходной sql код. Генерация этого кода будет произведена абсолютно прозрачно для вас.

    Обе ORM имеют работать с отношениями. Вам нужно будет указать, как таблицы относятся друг к другу, а затем вы сможете удобно обращаться к связанным сущностям.

    Теперь конкретно. Так как вы только начинаете осваивать ORM, я бы порекомендовал начать с Eloquent. Она гораздо проще, чем Doctrine, да и более производительная, к тому же. Как освоите Eloquent, смело учитесь работать с Doctrine. Она обязательно должна быть "в копилке" ваших скиллов, так как является самой мощной в "мире" PHP.

    Успехов!
    Ответ написан
    2 комментария
  • Существуют ли в природе реализации блокчейн на PHP от и до?

    @EverOne
    R&D Management since 2011
    procode: PHP - серверный язык (за незначительными исключениями), BlockChain - технология распределенных данных (баз) на клиенте(*ах). Вашими клиентами будут серверные машины?
    Если же хранить на уже готовом BlockChain'e, то уточните какой именно вас интересует - BitCoin, Etherium или еще что-то?
    Тот же Etherium вполне позволяет создавать смарт-контракты.
    Вот вам API для PHP. Дальше думайте сами.
    Ответ написан
    Комментировать
  • Существуют ли в природе реализации блокчейн на PHP от и до?

    gds1
    @gds1
    Пыха - это наше всё)))
    как это база пользователей в виде блокчейн? не совсем понятен вопрос, и соответственно, не понятна реализация.
    Ответ написан
    1 комментарий
  • Книга о том как правильно должен работать программист?

    un1t
    @un1t
    Чед Фаулер "Программист фанатик"
    Джоэл Спольски "Джоэл о программировании"
    Роберт Мартин "Идеальный программист"
    Том ДеМарко, "Вальсируя с Медведями: управление рисками в проектах по разработке программного обеспечения"
    Том ДеМарко "Человеческий фактор. Успешные проекты и команды"
    Роберт Гласс "Факты и заблуждения профессионального программирования"
    Игорь Савчук "Отъявленный программист. Лайфхакинг из первых рук"
    Питер Сейбел "Кодеры за работой. Размышления о ремесле программиста"
    Хант Эндрю, Томас Дэвид "Программист прагматик"
    Ответ написан
    1 комментарий
  • Переход с постоянки на фриланс, стоит ли игра свеч?

    А почему вы не спрашиваете "стоит ли жениться", например
    Ответ написан
    6 комментариев
  • Почему разработчики под OS X не востребованы?

    gadfi
    @gadfi
    https://gamega.org
    странный вопрос на самом деле ... нет рынка вот и не востребованы
    айфоны в странах снг распространены, соотвесвенно нужны айос разрабы, маки нет
    вы конечно можете возразить что у меня мак, у коллеги мак, у любовницы и шефа тоже мак НО если брать среднее по больницы то в странах снг маков нет )
    те кому нужен мак для работы (разрабы, звукачи, фотографы ...) используют проверенный временем софт от айдоб или с кетч, у разрабов это продукты джедбрэйнс, атом и тд

    обычные пользователи давно ушли в интернет и в лучшем случае на детскопе используют скайп и какой то плеер, остается бизнес .... мало того что он активно переходит на тонкий клиент(обычно веб), но даже если и нет, даже если начальник использует мак, остальных он посадит на старый добрый корпаративный пк
    Ответ написан
    6 комментариев
  • Почему разработчики под OS X не востребованы?

    DMGarikk
    @DMGarikk
    Lead Software Developer
    Таинство в проценте рынка занимаемого OSX
    Ответ написан
    Комментировать
  • Ошибка на сервере "Отключите использование HOSTS". Как это сделать?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    все проще

    выходишь из опенсервера, не гасишь, а именно выходишь

    правой кнопкой по иконке

    "запуск от Администратора" - запускаешь
    Ответ написан
    7 комментариев
  • Кто чаще всего обращается за услугами на фриланс биржу?

    search
    @search
    мама говорит что я особенный
    Проблема (для заказчиков) в том, что спрос на разработчиков на западе очень высок. На то чтоб найти толкового разработчика могут уйти месяцы и десятки тысяч долларов. Поэтому к услугам фриланса прибегают все кому не лень.

    В своё время мне удалось поработать в самом Апворке (работал в команде, отвечающей за джоб посты) и помню что среди клиентов были, например, ebay.com и airbnb.com. До этого работал на внутреннем проекте для bwin.com (через тот же апворк). Это из крупных заказчиков, о которых мне точно известно.

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

    @immaculate
    Программист-путешественник
    Медитация. Отсечь лишние источники информации: ТВ, новости, социальные сети. Уменьшить нагрузку. У меня такие симптомы, когда слишком много обязанностей на себя беру.
    Ответ написан
    11 комментариев
  • PHP Единая точка входа?

    @ugodrus
    Ничего удивительного. Вы передаете переменную через ГЕТ key=1
    Внутри PHP $_SERVER['REQUEST_URI'] = /login/?key=1
    Далее по коду
    $page = 'login/?key=1'; 
    if (file_exists("all/login/?key=1.php")) 
      include "all/login/?key=1.php"; 
      else if ($_SESSION['logged_user'] and file_exists("auth/login/?key=1.php"))
      include "auth/login/?key=1.php";
      else if (!$_SESSION['logged_user'] and file_exists("guest/login/?key=1.php"))
      include "guest/login/?key=1.php";
      else
      header('Location: /404');

    Не думаю что у вас в auth/login/ найдется файл ?key=1.php
    Не знаю с каких времён у вас такая дремучая конструкция. Такие городулины со времени похорон 4.3 не практиковал и не встречал.
    Вердикт один - либо подбирайте другую переменную с корректным значением $page. Либо чистите эту. Убирая лишнее и анализируя подходит ли значение после фильтрации.
    Ответ написан
    4 комментария
  • Стоит ли читать книги для понимания верстки?

    tema_sun
    @tema_sun
    CSS штука довольно объемная и читать книгу про нее, как по мне, малопродуктивно. Самый лучший способ освоить ее - решать реальные задачи. А уж что вы будете использовать (спецификацию, книгу или справочник какой) дело десятое.

    не до конца понимаю все моменты

    выпишите их все на бумажке и найдите ответы на эти вопросы.
    Ответ написан
    1 комментарий
  • Как устроиться работать в open source?

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

    Во-первых, имейте в виду, что советовать вам будут всегда свой любимый фрейм.
    Во-вторых, CI вычеркните.
    В-третьих, Laravel 5 намного лучше Yii2 (см. "во-первых" : )
    3.1. Дока на русском однозначно лучше: https://laravel.ru/docs/v5/quickstart
    3.2. Есть роскошный стартовый видео-курс на русском же: https://www.youtube.com/watch?v=IpfVvIYkcPA
    3.3. В нём намного меньше магии, что могло бы означать, что на Yii разрабатывать быстрее, но как вы, видимо, понимаете (ибо опыт программирование имеете) - магия хороша для базовых вещей, но привносит много хлопот, когда нужно контролировать свой код.

    И ещё один момент:
    Максим Тимофеев писал:
    yii или laravel [...] одинаково хороши

    Проблема в том, что они совсем по-разному хороши :)
    Ответ написан
    2 комментария
  • Какой фреймворк выбрать для обучения?

    @Fortop
    Tech/Team lead
    Берите микрофреймворки Slim, Zend Expressive

    У вашего "быстро выучить" есть большой подвох, что вы и останетесь на том что выучили.

    Потому что такие фреймворки как laravel, yii провоцируют писать не очень хороший код.
    Ответ написан
    1 комментарий
  • Как проверить разроботчика на честность?

    Symphony
    @Symphony
    Сейчас общаюсь с разработчиком с фриланса, попросил его сбросить работы подобных сайтов как я хочу сделать.

    Это предложение не предполагает того, что он (разработчик) должен скинуть свои работы (сделанные им).
    Ответ написан
    1 комментарий