• Правильно ли я создал класс?

    @Serdonda
    В целом это все еще некая продвинутая "лапша", тоесть код в перемешку с выводом и обращением к базе и вкраплениями ооп.

    Попробуйте почитать www.php-fig.org/psr/psr-1 - это общепринятые стандарты, в частности там рекомендуется не смешивать в одном файле обьявления функций/классов, их применения, подгрузку и вывод данных. Там же даны рекомендации об именовании (тот же кемелкейс и т.д.)

    Для примера можно посмотреть как другие учились. Вот неплохой образец на который я как то наткнулся https://bitbucket.org/e_svirsky/webshop/src/1e8de2...
    это как бы обучающее задание, но пройдясь по нему возможно станет понятнее.

    Потом можно посмотреть какое нибудь простое приложение, например вот недавно натолкнулся и рассматривал такой вариант https://github.com/semaster/2FAuth-Steganography - на этом примере будет понятней как использовать mvc, обьекты, автозагрузку
    Ответ написан
    1 комментарий
  • Правильно ли я создал класс?

    @IceJOKER
    Web/Android developer
    Бегло посмотрел код и что бросилось в глаза - это названия методов, пишите в стиле camelCase, а не almost_Camel_Case

    insertCSS (можно и Css как вам удобнее)
    appendContent
    etc.

    Меня особенно волнует правильно ли я наполняю переменные для return-на - лучше минимизировать return , чтоб он возвращал какой-нибудь примитивный тип(boolean, array, int etc.), но не HTML текст(прочтите про MVC).

    И зачем префиксы my*? без не лучше?
    set_h1- это не айс, а что если потом захотите h1 поменять на div#title? абстрагируйтесь, пишите setTitle или как-то по другому.

    В остальном - учитесь и практикуйтесь, смотрите код на github и сравнивайте, а то ваш вопрос какой-то некорректный что ли
    Ответ написан
    1 комментарий
  • Как обратиться одному методу к другому?

    @AndryG
    Я полностью согласен с предыдущими ораторами.

    Мне нужно, чтобы метод внутри класса могу работать внутри другого метода.
    Перечитывайте перед публикацией )
    Ответ написан
    Комментировать
  • Как обратиться одному методу к другому?

    thewind
    @thewind
    php программист, front / backend developer
    return $this->hellow_world()

    Hello пишется без w ;)
    Ответ написан
    Комментировать
  • Как обратиться одному методу к другому?

    @impos
    Если все правильно понял, то
    public function createPage()
      {
        return $this->hellow_world();	
      }

    php.net/manual/ru/language.oop5.basic.php
    Ответ написан
    Комментировать
  • Правильно ли я определил классы в ООП?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    ООП это не стиль, это парадигма.
    Ее можно использовать для написания программ практически любого размера, но неудобно для мелких скриптов.
    Стиль это скорее нотации, типа CamelNotation

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

    Суть ООП и функционального программирования только в том, как располагать куски кода - по функциям или по методам. Но ограничение доступа связано ни с функцией ни с методом, а с тем, как вы это ограничение реализовали.

    Главная идея ООП заключается вот в чем:

    Есть данные. Мы их инкапсулирем в класс.
    Есть методы, которые манипулируют именно этими данными. Поэтому методы должны тоже находиться в классе с данными.

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

    @IceJOKER
    Web/Android developer
    Для каждого случая свой вариант, НО в вашем случае - НИ ОДИН ИЗ , возвращать html через функцию - это не комильфо, смотрите в сторону MVC

    p.s. в третьем методе уберите лишние апострофы, только в начале строки и в конце(тут не как в JS или в других ЯП)
    Ответ написан
    2 комментария
  • Как накапливать (присваивать) значение для return?

    method_2

    а в третьем попробуй так

    function method_3()
    {
      return '<h1>Заголовок</h1>'.
      '<p>Тест1</p>'.
      '<p>Тест2</p>';
    }
    Ответ написан
    Комментировать
  • Правильно ли я определил классы в ООП?

    @Neonoviiwolf
    Flutter developer
    ООП предназначена, чтобы структурировать код так, чтобы новые возможности вносились малой кровью и позволяет писать меньше кода. Класс "товар" имеет, к примеру, цену и наличие - этот класс будет родителем всех товаров. Дольше расширяем класс "товар", создаём несколько детей: "фототехника", "телефоны" и т.п. Берём класс "фототехника" и создаём детей, которые символизируют производителей (тут можно сразу ввести их сайт и какие либо данные помимо). Далее расширяем класс производителя по его моделям - тут забиваем оставшиеся параметры. Теперь, чтобы добавить ещё какой либо товар из созданных групп, нужно только расширить класс последнего родителя, соответственно кода писать намного меньше. Ну это чисто для пониманию зачем и почему
    Ответ написан
    Комментировать
  • Правильно ли я определил классы в ООП?

    @Sketcher2010
    PHP, python, java developer
    1) Конечно удобно. Еще удобнее использовать фрейм-ворки, которые (все) используют ооп
    2) Можно использовать синглтон (шаблон singleton) и в нём уже контролировать кол-во запросов. Однако тут я немного могу ошибаться (ибо сложно узнать откуда пришёл запрос: из сообщений или из загрузки страницы)
    3) в самописных cms лучше использовать MVC. Тут уже идёт разделение на модели (товар, хлебные крошки), вьюхи (страница, ветрина, меню) и контроллеры, которые связывают это.

    Ответил на все два вопроса ;-)
    Ответ написан
    2 комментария
  • Зачем в данном примере класс?

    trevoga_su
    @trevoga_su
    Говорит, привыкай к классам, но я не очень нахожу в данном случае им применение.
    Конечно. Потому что ты не знаешь для чего они нужны, ты еще не умеешь мыслить объектами и начальник твой все же в большей степени прав. ООП надо понимать и знать. Читай книгу "гради буч объектно-ориентированный анализ и проектирование скачать pdf"

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

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

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

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    Тоже раньше не понимал зачем нужны классы и ООП если и так всё работает. Попытки вникнуть в тему по статьям, приводимым в инете (объснения на каких то стульях, столах, человеках, студентах и т.д.) результата не давали.
    Потом просто попробовал что то написать с применением ООП. Что то мелкое... Поверхностно освоил наследование, конструкторы, статические методы и т.д. Когда писал мало задумывался о результате и удивился, когда всё заработало с первого раза как надо! До этого приходилось долго вылавливать логические ошибки и отлаживать.
    Потом по живому коду других людей понял как надо писать ООП. Начал развивать в себе это объектное понимание и заметил что реально код содержит в разы меньше ошибок, неточностей и, если что то идет не так, то я примерно понимаю где произошла ошибка.
    Так что просто начните использовать ООП и сами поймёте зачем оно нужно, но вначале, надо себя заставить ;)
    Ответ написан
    Комментировать
  • Зачем в данном примере класс?

    @kstyle
    напишите функцию, которая берет файл с кодом php и перегоняет все отдельные функции в классы и наоборот. а вообще если аргумент начальника в том, чтобы вы учились новому, то я с ним соглашусь
    Ответ написан
    1 комментарий
  • Зачем в данном примере класс?

    @Sushkov
    ">alert("yohoho")
    Для мелкого проекта ненужно, но для для больших это очень удобно. Стоит к этому привыкать, если есть планы писать качественно.
    Ответ написан
    1 комментарий
  • Какую структуру БД выбрать для рейтинга?

    @nelson
    Структура нормальная. Говорю как человек, который использует такую же более чем на 10 миллионах строк с голосами.
    Единственное, я бы делал запрос на выборку голосов не select * , а select user,val ведь id его голоса нам не нужен, а item у всех строк одинаковый. Ну, и пересчитывал бы рейтинг мероприятия всё таки при каждом голосовании, а не при просмотре результатов (хотя это зависит от того, что будет происходить чаще).
    И чтобы проверять, гословал ли данный юзер за данное мероприятие, не помешает еще составной индекс по (user,item).
    Ответ написан
    4 комментария
  • Какую структуру БД выбрать для рейтинга?

    @skyfortress
    Вроде все правильно, а 1 000 000 при вашей структуре это совсем немного.
    Ответ написан
    Комментировать
  • Как улучшить качество кроп в PHP?

    Androguide
    @Androguide
    TeamLead AG
    Вам нужен php.net/manual/ru/book.imagick.php
    Там есть различные методы, некоторые кропят и уменьшают с средним качеством а некоторые как PS.
    Но вы должны понимать, что при хорошем качестве будет и хорошая нагрузка.

    $i = new \Imagick($target);
    // По сути сначала вы делаете кроп 
    $i->cropImage(...);
    // Затем уменьшаете без потери качества
    $i->ThumbnailImage($width, $height, true);


    Вот, есть хороший обзор/урок sunnyblik.livejournal.com/39172.html?page=1
    Ответ написан
    Комментировать
  • Как улучшить качество кроп в PHP?

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

    Насчет фотошопа - думается мне, что просто ADOBE, будучи крутыми разработчиками и долго занимаясь своим продуктом, доработали или переработали алгоритмы сжатия jpeg.

    Могу ошибаться.
    Ответ написан
    2 комментария
  • Как улучшить качество кроп в PHP?

    Stalker_RED
    @Stalker_RED
    imagejpeg() - качество не указываете? по умолчанию около 75.
    imagecopyresampled - если вы ресайзите, это тоже может побить картинку.

    В фотошопе намного шире выбор алгоритмов сжатия, GD и близко не стоит. В imagemagick получше, но до фотошопа далеко.
    https://foliovision.com/2010/03/imagemagick-vs-gd
    Ответ написан
    2 комментария
  • Как отследить откуда пришел посетитель?

    EnterSandman
    @EnterSandman
    Эникей
    Гугл и яндекс с некоторого времени шифруют свои запросы
    Ответ написан
    Комментировать