Ответы пользователя по тегу PHP
  • Правильно ли я использую класс?

    1) Почему функции и переменные с нормальным неймингом, а класс как "Отщит"?) Никаких f - называйте все своими именами.
    2) Модель формы - выносятся в отдельный класс. Валидация полей в моделях формы. И вид тоже в отдельном файле.
    3) Использование супер глобальных переменных POST GET - не допустимо, данные должны пробрасываться/инжектится в класс, а не использоваться внутри. Как правило они используются в контроллерах в рамках MVC.
    4) Переводы и надписи выносятся тоже в отдельный файл i18n. Представьте ситуацию, вам завтра позвонили и сказали, надо сделать на немецком языке. Вы лезете в каждый класс, что бы это все исправить? А если классов 100 ?)
    5) Метод Save можно превратить в апдейт одновременно. Если в метод добавлено Id то делаете апдейт записи, если нет, то создаете.
    6) Я бы еще добавил исключений, но то уже такое, каждый делает где ему удобно.

    Почему на босса есть сеттер, а на директора add Хотя это тоже сеттер ?)
    Ответ написан
    6 комментариев
  • PHP для новичка?

    1) Самая актуальная литература всегда на английском, на русском документация и best practices - подойдет любая на первое время.
    2) Смотреть и знать нужно все, что бы оставаться профи и быть на плаву. если вы изучаете php 5.6 и выше, там нет заведомо плохих технологий или вещей, которые не используются.
    3) ~~ у каждого своё, для меня самым крутым сервисом является github.
    4) На самом деле любой. Они все имеют паттерны программирования и MVC подход. от простых к сложным, по моему мнению: Yii2, Laravel, Symfony, Zend.
    5) А программирование это техническая и точная наука. Она не любит разъяснений на пальцах. Вам придется вникать в книги и в уроки и перечитывать по два, а то и по три раза пока не дойдет, и тонну статей на хабре для уточнений.

    После всего этого чтения, читать Макконела "Совершенный код". Там общие парадигмы, правила, трюки и просто мастхев любому программисту.
    Ответ написан
    Комментировать
  • Как реализовать выбор размера в интернет магазине ( логика )?

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

    Решить можно разными способами, сложными но гибкими, легкими но харкодом.
    Гибко, создается таблица на каждый критерий например размеры. Админ может управлять размерами т.е. заносить новые стандарты. Товары формируются следующим образом. Есть главный товар(на нем вся инфа) и дочерние товары (связь один ко многим внутри таблицы товаров), они имеют эти разные критерии. В главном товаре показываем доступные варианты размеров и цветов.

    Хардкорно
    Когда вы знаете заранее определенные критерии, пилите константы и серриализуете в одну из колонок в товаре либо JSON всю пачку всех критериев. При таком варианте админ не добавит новых размеров.
    Ответ написан
    Комментировать
  • Как узнать размер (кол-во занимаемых байт) объекта в PHP?

    $before=0;
    $a='испытуемая переменная либо массив или объект';
    $before = memory_get_usage();
    unset($a);
    echo 'размер переменной составил: ',$before-memory_get_usage(),' байт';
    Ответ написан
    Комментировать
  • Что запилить php-джуну для портфолио?

    Многим это не нужно. Наличие проектов на GITе сделает свое дело и интервьювер глянет и сделает codereview, но по большому счету это не нужно никому. Большинство спросят как применяли эти технологии, зачем и почему. Что стоит делать и что не стоит в первую очередь. Либо дадут тестовое задание, после которого решат, подходите вы или нет.

    Что до идеи, сделайте то, чем вы увлекаетесь. Если это музыка, напишите музыкальный портал с радио или прослушиванием альбомов, если рисование и арт, посвятите сайт тематике или истории художников. Готовить - ну вы поняли. Как стимул, возможно, работая джуном вы получите еще больший опыт и захотите иметь сторонний доход. Чем не повод поставить свою первую идею в работу и получить мороженко в конце каждой недели ?)))
    Ответ написан
    Комментировать
  • Wordpress как сделать статическую страницу, но с использованием php, js?

    HanDroid
    @HanDroid Автор вопроса
    Разобрался уже.
    в нужном новом шаблоне вставляем комментарий с названием.
    /*
    Template Name: main-page
    */

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

    У каждого индивидуально.
    Лучше делать, что бы можно было расширить без проблем. Тогда другой разработчик помянет добрым словом.

    Если вы хотите захардкодить все, то конечно можно. И потом при каждом желании сдирать деньги за каждую фигню. Но если клиент просечет, к вам больше не обратятся и сарафанное радио работать не будет.
    Ответ написан
    Комментировать
  • Как настроить xdebug и phpstrom 10 на ubuntu 14?

    А если в Id написать так ?
    xdebug.idekey=PHPStorm
    Если вы используете прослушку порта, ключ вообще не влияет.
    Ответ написан
  • Как найти различия в строках php?

    Использовать жесткое равно а сами татйлы брать из бд и сравнивать.
    titlex = "Пацанский сайт немного магии, для пацанов онли!";
    titley = "Пацанский сайт Мерлину такое не снилось, для пацанов онли!";
    if(titlex === titley)
    {
    //your code если они различные
    }


    Если вам нужно искать непосредственно сами тайтлы и в фразе вытащить только то, что стоит между, использовать RegEx для поиска. Просто нужно создать шаблон, по которому регулярное выражение вытащит все, что будет между ключевыми фразами.

    И третий способ, написать JS скрипт, который работает непосредственно со страницами и html. вытащить тайтлы, а дальше все тоже самое либо сравнение, либо RegEx на JS
    Ответ написан
  • Как передать значения из массива в отрисованную таблицу?

    вроде бы так
    <table border="1">
    <tr>
        <th>Имя</th>
        <th>Фамилия</th>
       </tr>
    <?php 
    foreach($users as $user) {
      echo '<tr>';
        echo '<td>' . $user->firstname . '</td>';
        echo '<td>' . $user->lastName . '</td>';
     echo '/<tr>';
    ?>

    Ответ написан
  • Насколько важно сейчас начинающему веб-разработчику разбираться в SQL досконально?

    А что там учить то ? О_О если вы знаете английский, там всего 4 часто используемых команды. CRUD, которые выучиваются за пару часов или даже в процессе написания. Тригера начинающий вебер не будет писать, а через ORM вы делаете все те же операции CRUDа. Чистый SQL вам не придется писать - это не безопасно, а во вторых не доверят. Но знать команды и какие возможности у вас есть - это обязательно!

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

    У них же есть свой API вроде бы...
    Тут и про авторизацию и аутентификацию к ним есть.
    Докумнтация
    Ответ написан
    Комментировать
  • В таблице обнуляются все данные, почему?

    Может быть Cron Настроен на обнуление. либо может быть с сессией связано. Сессия каждый день убивается и создается новая, как правило Php тогда обнуляет значения для юзеров. Нужно больше данных о таблице и Php, который с ней работает. Так проблем много может быть. От тригеров до ошибки в Php.
    Ответ написан
    1 комментарий
  • Как спроектировать базу данных?

    А можно пойти еще более быстрым путем, но тогда вы не научитесь проектировать.
    Гуглите Архитектура БД Блога/Магазина/кинотеатра и так далее.
    Ответ написан
    Комментировать
  • Какая CMS лучше всего подходит для сайта пассажирских перевозок?

    На которой вам легче всего работать. Под такой список задач подойдет любая ЦМС. Все они выполняют одно и тоже запись, чтение, изменение, удаление записей. Если для расчета стоимость вы используете карту, то это JS(его можно воткнуть в любую ЦМС). С остальным проблем нету на всех цмс перечисленных в ваших тегах.
    Ответ написан
    Комментировать
  • Нужно ли шифровать куки?

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

    У разных языков по разному. Например в Java можно реализовывать кучу интерфейсов, но нельзя реализовать множественное наследование не больше 3-ех наследников и с помощью интерфейсов решают это.

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

    Абстрактный класс нужен, когда нужно семейство классов, у которых есть много общего. Конечно, можно применить и интерфейс, но тогда нужно будет писать много идентичного кода.

    Пример: Абстрактный класс заведомо не будет запрошен как объект. К примеру абстрактный класс - Транспорт: Но все его наследники будут Автомобилем, краном, лодкой, самолет и т.д. Например вы заведомо знаете, что весь транспорт будет двигаться. И вы объявляете абстрактный метод(движение) в абстрактном классе, который нужен будет 100% всем наследникам т.е. без движения это уже не транспорт и новый наследник обязан будет реализовать это. В самом же абстрактном классе, есть другие поля и свойства, которые будут унаследованы. Ну например мощность двигателя(очень грубо), или то что их роднит.
    Ответ написан
    2 комментария
  • Как в PHP искать похожие слова?

    Не знаю как на счет php, но можно попробовать через Sphinx - модуль поисковой машины.

    Если текст хранится в БД, то через запрос LIKE '%'.$someText.'%' или ILIKE в зависимости от ваше базы. Запросы такого типа ищут совпадения.
    Ответ написан
    Комментировать
  • Как правильно подготовиться до уровня Junior PHP?

    Как написали выше, без фреймворка далеко не уедете. Для общего будет достаточно написать блоги на Yii2 и Symfony 2(Ларавел написан на ядре от симфони, есть нечто схожее). Пользуйтесь при разработке ООП(это нужно не только работодателю, но и вам. Поскольку придет ваш клиент через два года и попросит фичу, а у вас костыль на костыле и чудище никак не расширяемо). И конечно, читайте документацию того, на чем вы работаете, на английском и чем свежее тем лучше. В частности, колонки Best Practice очень помогут на первых этапах. Книги бесполезны, то что было два года назад, уже никому не нужно.

    Реализация своего проекта, тогда и тестируйте его по полной. На собеседованиях будете рассказывать как и что делали, и почему. Можно попросится помощником кому-то на фрилансе, или поработать бесплатно. Это даст ощутимый буст в знаниях, не только как программиста, но и члена команды. Научитесь использовать миграции, системы баг трекинга, системы версионного контроля, что при командной разработке не мало важно. А в качестве джуна вы будете обязательно работать в команде и под присмотром. Важно работать с разной информацией и уметь предложить несколько вариантов разработки и решений. Как-то так.

    Если вы располагаете временем. Попробуйте сделать что-то сложнее чем интернет магазин. Например, сайт авиакомпании с рейсами и заказом билетов, мониторинг и пр. Банковские системы, работа с API гугла, фейсбука, вк, или онлайн касс. Разные виды парсинга данных и их отображения.
    Ответ написан
    8 комментариев
  • Есть ли где-то не очень большой пример написанного REST сервера?

    У меня есть такая штука. Клиент-Серверный вариант REST full API используется Yii2 в связке c Angular JS. Тык
    Если и не подходит под данную вами задачу, то ознакомится можно без проблем. Оглавление в самом низу. )
    Ответ написан
    Комментировать