За последние 24 часа нас посетили 21735 программистов и 1021 робот. Сейчас ищут 733 программиста ...

Как быстро освоить PHP

Тема в разделе "PHP для новичков", создана пользователем fenix_63, 16 мар 2015.

  1. Moss

    Moss Новичок

    С нами с:
    6 июн 2017
    Сообщения:
    4
    Симпатии:
    2
    сайт давний, пока держится... спасибо за совет, буду пробовать. хочу изменить дизайн и все доработать, но нет идей(( сейчас смотрю сайты стали более модными и красочными, но делать их самостоятельно без различных плагинов (как я понял например bootstrap 3) не получается, даже цвета у них какие то необычные как будто не из css (или это на фотошопах или что не пойму), а что изучать чтобы было все красиво и правильно хотел узнать у Мастера Шифу и Ко, чтобы можно было найти фриланс и работу в дальнейшем. спс
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    А что заценивать-то? Внешний вид? Если так, то с дизайном беда беда. Надо переделывать.
    В остальном сказать ничего не могу. Разве что, надеюсь, что внешний вид не является отражением внутреннего.

    Хочешь получить оценку задачки, вокруг которой крутится тред - сделай ее и выложи на гитхаб.
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    нам код бы
    мы ж кодеры
     
  4. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    зато смотри какая бикса))
     
  5. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    как бывший верстальщик газеты скажу что надо шрифт везде один использовать.. или рубленный или с засечками.. а то засилье шрифтов на одной странице не гуд..
     
    Moss нравится это.
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    так, верстальщик
    а ща во фронтенд ты как?
    как тебе такое
    https://vuetifyjs.com/components/chips
    покликай там по разным из списка слева
     
    Алекс8 нравится это.
  7. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    я чуть чуть не тот верстальщик)) я верстал по ночам газету в QuarkXPress) когда еще в техникуме учился))
     
  8. Moss

    Moss Новичок

    С нами с:
    6 июн 2017
    Сообщения:
    4
    Симпатии:
    2
    ))) внешний вид является отражением стадии развитии в области создания сайтов(junior), переделать бы и сам рад, но нет концепции, как и куда...
    пойду изучать что такое гитхаб и как это работает...
    спс всем за ответы!
     
    Fell-x27 нравится это.
  9. Aleksanbr_77

    Aleksanbr_77 Новичок

    С нами с:
    31 янв 2016
    Сообщения:
    115
    Симпатии:
    5
    @mkramer доброго..., раньше как то не придавал значения, и все проверки делал if ( $var ), честно сказать ленился и не видел смысла писать isset. Профессионально программированием я не занимался, а изучал его так, тренировал мозг, у меня установлено было РНР 5,3. Сейчас поставил РНР 5.6 и посыпались "нотисы", причем везде где я вместо if ( isset ($var) ) использовал if ( $var ). Но на тестовом хосте стоит РНР 7.0 и этих "нотисов" нету. И на удаленном сервере проверка if ( $var ) проходит очень хорошо. Это -возникновение нотиса- как то связанно с версией РНР или просто отключен был показ нотисов в php.ini, а он всегда был просто не показывался на экране?
    На всякий случай все переписал, во всех скриптах, благодарю за совет, раньше не сталкивался, поэтому и значения не придавал этому!:(
     
  10. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    @Aleksanbr_77, Будут нотисы или нет зависит от настройки php. Надо делать isset, тогда нотисов никогда не будет. И я уверен, что на хостинге куча нотисов в логах (если там правильно настроено)
     
    Aleksanbr_77 нравится это.
  11. Aleksanbr_77

    Aleksanbr_77 Новичок

    С нами с:
    31 янв 2016
    Сообщения:
    115
    Симпатии:
    5
    @mkramer спасибо, теперь понял, буду знать и учитывать это! -"учусь";)
    прям как в каком то фильме, но там речь шла о сусликах, а не о нотисах:
    - видишь нотиса?
    - нет
    - а он есть!
    ;)
     
    #561 Aleksanbr_77, 11 июн 2017
    Последнее редактирование: 11 июн 2017
  12. Vitomonte

    Vitomonte Новичок

    С нами с:
    5 дек 2017
    Сообщения:
    6
    Симпатии:
    0
  13. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Автор темы почил давно как пользователь форума, ниасилив тестовое задание :)
    Если же ты меня имел ввиду, то часа через 3 постараюсь глянуть, но не гарантирую.
     
    Vitomonte нравится это.
  14. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Vitomonte я поставил звёздочку на гитхабе ))
    Там с mvc написано, видно человек не первый день кодит.
     
  15. Vitomonte

    Vitomonte Новичок

    С нами с:
    5 дек 2017
    Сообщения:
    6
    Симпатии:
    0
    Спасибо, но хочется замечаний, ибо человек самообразованием занимается, и что такое звездочка на гитхабе еще не знает - пошел гуглить)
     
  16. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
    Регистрация не работает
     
  17. Vitomonte

    Vitomonte Новичок

    С нами с:
    5 дек 2017
    Сообщения:
    6
    Симпатии:
    0
    Что именно не работает, можно подробнее? Я не могу найти ошибку
     
  18. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
    @Vitomonte а не всё работает, это я немного ступил
    --- Добавлено ---
    @Vitomonte а не всё работает, это я немного ступил
     
    Vitomonte нравится это.
  19. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Ну поехалей:

    По пунктам ТЗ:

    1) Запили страничку, посередине которой форма входа с полями под логин и пароль.
    2) Под ней кнопки "зарегаться" и "войти".
    3) Для регистрации пользователь должен указать ник, парольку, дату рождения, это уже другая форма, как можно догадаться.
    4) Если возраст пользователя окажется меньше, ну пусть, 5 лет, при попытке реги пользователю надо вывести сообщение "Too young!", над формой входа. Если окажется больше 150, то "Too old!" там же. Регистрация при этом произойти не должна.
    5) Если все ок, то, форма меняется на огромное число "0", а кнопки меняются на "+1" и "Выход".
    6) По клику на кнопке "+1" огромное число "0" должно увеличиться на единичку. Имеется ввиду его значение, а не размер шрифта.
    7) По клику на "Выход" пользователя должно разлогинить.
    8) После разлогинивания пользователь может войти на страничку со счетчиком, введя свои учетные данные.
    9) Счетчик при этом должен быть равен последнему значению, которое тот накликал. У каждого пользователя свой персональный счетчик.
    10) Запрещено использовать JS, все должно обрабатываться только через сервер.
    11) Хранить данные в БД или на файлах - твое дело. Но, рекомендуется, в БД.
    12) Требований по стилям нет - главное, чтобы работало как описано ну и чтобы все, что помечено "посередине страницы" таки висело посередине страницы.

    Итого:
    1) Форма не посередине, а должна быть посередине :)
    2) Молодец, что юзаешь flexbox.
    3) Пункт 11 не оценен, так как любое решение, согласно ТЗ - верное.

    ПО технической части, что бросилось в глаза:
    0) Папку .idea лучше не включать в репозиторий :) .gitignore туда же. И файлик test тоже не выглядит как полезная нагрузка.
    1)
    Код
    PHP:
    1. // Установка переменных для шаблона.
    2.         foreach ($vars as $k => $v)
    3.         {
    4.             $$k = $v;
    5.         }
    Так делать нежелательно. Таким подходом можно выстрелить себе в ногу. Почему бы просто не использовать массив дальше? Есть большая разница между $array['val'] и $val? С точки зрения безопасности выполнения вот есть.
    Но, если прям хочется массив превратить в переменные, лучше юзать вот такую функцию.

    2) Код подключения шаблона
    PHP:
    1. include $fileName;
    Может стать причиной ошибки, если тебе нужно дважды или трижды использовать один и тот же шаблон. Например, вывести пару компонентов одного типа. Лучше пользоваться include_once в такой ситуации. И почитай про requre и requre_once дополнительно.

    3) В index.php объявлена константа DIR со значением __DIR__. И больше нигде так и не использована. Поправь, если я ошибаюсь.

    4) Запросы к БД сделаны грамотно. Редко попадаются новички, правильно пользующиеся PDO.

    5) Молодец, что юзаешь password_hash.

    6)
    PHP:
    1. return htmlspecialchars($str);
    Так, сдается мне, что ты не новичок :)

    Итого, все сделано довольно качественно. Код весьма читабелен, логика прямая как лом. Перечисленные "проблемы" на деле мелочь неинтересная. Ты юзаешь ООП по-взрослому, с абстрактными классами, наследованиями, пробросами в родителя, заботишься о модификаторах доступа. Ты умеешь правильно работать с БД, не страдаешь новичковым trim(strip_tags(add_slashestrim(strip_tags(add_slashestrim(strip_tags(add_slashes())))); Правильно выводишь контент. Ты даже подготовил портабельность своего решения, автоматизировав создание файлов БД. Ты понимаешь, в чем соль SQlite. Сам выбор SQLite тоже "палево". И ты можешь в автолоад..

    Но при этом ты:
    1) Юзаешь только include.
    2) Обязательно объявляешь в классе конструктор и деструктор.

    Из чего я делаю вывод, что если ты и новичок, то только в PHP, но не в программировании как таковом. Ты явно знал, что делал и понимал проблемы, которые надо решать. И, ввиду вышеприведенных пунктов, скорее всего, ты Сишник или Плюсовик, решивший попробовать веб :)

    В любом случае, добро пожаловать, ты - молоток.
     
  20. Vitomonte

    Vitomonte Новичок

    С нами с:
    5 дек 2017
    Сообщения:
    6
    Симпатии:
    0
    Я html год назад начал изучать, не говоря про ЯП (гуманитарий с 12-летним стажем работы в продажах) За оценку - спасибо, есть понимание, что в правильном направлении двигаюсь. Не совсем понял про "Так делать нежелательно. Таким подходом можно выстрелить себе в ногу. Почему бы просто не использовать массив дальше? Есть большая разница между $array['val'] и $val? С точки зрения безопасности выполнения вот есть.", а в остальном - учту на будущее)
     
  21. voral

    voral Активный пользователь

    С нами с:
    30 ноя 2017
    Сообщения:
    646
    Симпатии:
    104
    Полезным будет придерживаться PSR 0 - 7. От них отступают в некоторых командах в той или иной мере, но в учебных целях, можно взять на вооружение

    [OFFTOP]
    Ну кроме пробелов для отступов :mad: ;)
    [/OFFTOP]
     
    Vitomonte нравится это.
  22. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Ну тогда ты молодец. Это круто.

    Когда ты делаешь экспорт переменных такой, ты их неявно создаешь. При этом тот факт, что они "живы" вне foreach - багофича PHP.
    Неявно созданные переменные опасны. Они могут, например, перезаписать какую-то существующую переменную запросто. Чуть не углядел и замучаешься концы искать.

    Практической пользы таких переменных перед массивом как таковым нет. Массив при этом гарантирует изоляцию от внешней области видимости.
     
    Vitomonte нравится это.
  23. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    @Vitomonte как уже сказали выше, ознакомься со всем набором PSR, отдельно обрати внимание на PSR-4 и сразу после на менеджер зависимостей composer. Так же можешь посмотреть на пакеты собранные здесь, как пример хорошего кода, ну и просто полезных в работе инструментов.

    p.s. могу ошибаться, но по моему ты первый, кто сходу прошел тест Суриката ))
     
  24. Vitomonte

    Vitomonte Новичок

    С нами с:
    5 дек 2017
    Сообщения:
    6
    Симпатии:
    0
    Теперь понял, спасибо! Попался бы такой баг на реальном проекте в будущем - мозг бы сломал себе, правда)
    --- Добавлено ---
    PSR-4, пространства имен, composer - планы на ближайший месяц. Пакеты в закладки добавил(для домашнего чтения) про Суриката - посмотрел в гугле, ничего не понял, решил, что еще не дорос, отложил на потом)))
    --- Добавлено ---
    PSR-4, пространства имен, composer - планы на ближайший месяц. Пакеты в закладки добавил(для домашнего чтения) про Суриката - посмотрел в гугле, ничего не понял, решил, что еще не дорос, отложил потом)))
    @Fell-x27 По твоему опыту, при собеседовании на джуна сколько времени выделяется на подобное тестовое задание?
     
  25. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    композер освой прям ща. это займёт 10 минут. давай.
     
    Fell-x27 нравится это.