«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Клуб любителей изучать PHP #86 Аноним 2017/03/03 03:29:50  №945059 1
Добро пожаловать в наш уютный тред. Тут мы изучаем язык PHP (а также JS/CSS/HTML/SQL), решаем задачки и даже делаем простые сайты! Зачем? Кто-то хочет научиться программировать, кто-то - делать сайты, кто-то - просто размять мозги и заняться чем-то полезным.

Пожалуйста, пишите один большой пост вместо нескольких маленьких и не флудите не по теме. ОПу ведь все это читать придется.

Это тред для начинающих. Не написал за свою жизнь ни одной программы и имеешь тройку по математике? Ты наш человек.

Устанавливать пока что ничего не требуется, разве что редактор кода вроде Sublime Text 3, Notepad++, Visual Studio Code, Netbeans PHP или PhpStorm (с ним будет удобнее).

Предыдущий тред был тут: >>919074 (OP) ( http://arhivach.org/thread/233392/ )

Еще предыдущие треды в архиве:

- 84 >>898502 http://arhivach.org/thread/224683/
- 83: https://2ch.hk/pr/arch/2016-12-26/res/880700.html
- 82: https://2ch.hk/pr/arch/2016-12-01/res/864640.html
- другие: https://www.google.ru/search?q=site:2ch.hk/pr/+%D0%BA%D0%BB%D1%83%D0%B1+php

Мейлач лежит? Есть запасной тред: http://dobrochan.org/s/res/23225.xhtml#i46467

Что самое главное для программиста? Умение аккуратно оформлять код (читай второй пост, прежде чем писать код).

Правила: ведем себя воспитанно, помогаем новичкам, постим ссылки на решения задачек, ОП их проверяет и дает советы и замечания. ОП заходит редко, где-то раз в 2-3 дня, у него мало времени, не жди его, решай задачки дальше. ОП отвечает на все вопросы по его задачкам и учебнику, а вот насчет каких-то других вещей - только если останется время. Но в треде немало анонимных экспертов разного уровня, так что вряд ли вопрос останется без ответа.

У нас есть уроки по основам PHP, они собраны и выложены по адресу http://archive-ipq-co.narod.ru/ Это учебник для изучающих с нуля, то есть если ты вообще ничего не знаешь, то надо начать с него. Он простой и понятный (по крайней мере в начале). Там есть задачи, их надо решать обязательно (чтобы стать программистом, надо писать код — иначе никак). Пости ссылки на решения в тред, мы их проверим, напишем замечания и дадим советы по улучшению.

Если не знаешь как решать, запости код, напиши в каком месте остановился и попроси подсказку.

Ты прошел весь учебник? Молодец, но это были лишь основы языка PHP, этого недостаточно. Вот что в идеале надо изучить еще: ООП, как работает веб-сервер, HTML/CSS, SQL, PDO, работа с таблицами в БД, работа с формами, MVC, git, composer, JS, фреймворки, автоматизированное тестирование.

Надо переходить к более серьезным задачкам, которые научат тебя всему этому.

- для начала прочти урок https://github.com/codedokode/pasta/blob/master/soft/web-server.md
- установи Апач + PHP (советы выше и ниже) и читай туториал http://php.net/manual/ru/tutorial.php
- Учи HTML/CSS и SQL, PDO, хотя бы основы
- Далее простая, но полезная задача сделать список студентов, в ней много полезных советов: https://github.com/codedokode/pasta/blob/master/student-list.md
- Более сложная задача сделать файлообменник на микрофреймворке Slim: https://gist.github.com/codedokode/9424217
- Еще более сложная и долгая задача на Yii/Symfony: https://gist.github.com/codedokode/8733007
- После нее можно изучать автоматизированное тестирование https://gist.github.com/codedokode/a455bde7d0748c0a351a
- Если ты все решил, переходи к Symfony 2/Doctrine 2
- Почитать про паттерны http://designpatternsphp.readthedocs.org/ru/latest/README.html (если ты не изучил ни одного фреймворка, то это будет рановато), тут с примерами кода http://designpatternsphp.readthedocs.org/ru/latest/README.html . Имей в виду что без примеров использования их учить бесполезно - не поймешь, хочешь увидеть примеры использования паттернов - ковыряй исходники Симфони, например Symfony Forms. Не заучивай паттерны - смотри код и думай, зачем тут они использованы.

Чтобы делать эти задания, тебе надо установить Апач + PHP (можно заодно сразу и MySQL) на компьютер. Вот полезные инструкции:

https://github.com/codedokode/pasta/blob/master/soft/php-install.md
https://github.com/codedokode/pasta/blob/master/soft/apache-install.md

Может тебе понадобится пользоваться командной строкой, вот гайд https://github.com/codedokode/pasta/blob/master/soft/cli.md

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

Также, у нас есть задачи которые позволят тебе изучить или подтянуть до нормального уровня знания JS/HTML/CSS/SQL. Решай их параллельно с задачами выше.

- HTML/CSS: https://github.com/codedokode/pasta/blob/master/html/html.md
- JS: https://gist.github.com/codedokode/ce30e7a036f18f416ae0
- SPA (сложно): https://github.com/codedokode/pasta/blob/master/js/spa.md
- Проверялка решений на JS: http://dkab.github.io/jasmine-tests/
- MySQL: https://github.com/codedokode/pasta/blob/master/db/databases.md

Что почитать

- Мануал по PHP — http://www.php.net/manual/ru/langref.php
- Сайт phptherightway (перевод на русский: http://getjump.me/ru-php-the-right-way/ )
- По PHP: Профессиональное программирование на PHP Джордж Шлосснейгл
- По PHP: Мэтт Зандстра — PHP: Объекты, шаблоны, методики программирования
- JS: learn.javascript.ru
- Про Git: https://git-scm.com/book/ru/v1

Оформляй код аккуратно!!! — например пропусти через phpformatter.com . Также, если ты пользуешься IDE вроде PhpStorm, Netbeans, Eclipse, то в них эта опция встроена, подробнее: https://gist.github.com/codedokode/8759492

У ОПа нет аккаунтов и групп вконтакте, в фейсбуке, в твиттере, все "пхп-треды" там поддельные.

Платиновые вопросы

- Почему PHP? Потому что фейсбук и википедия на нем написаны, и вакансий море, и учить легко.
- Сайт опять упал!!!!! — Не паникуй, а открой http://rghost.ru/6bfCY9lfl и получи личную немного устаревшую оффлайновую копию сайта (можно читать хоть на андроиде без интернета)
- Что надо знать чтобы найти работу - разработчику: PHP, SQL, HTML/CSS, JS, ООП, Git, композер, MVC, фреймворк. Верстальщику - HTML/CSS, JS, jQuery
- Можно подробнее про поиск работы, собеседования - нет, ОП писать не будет, но может кто из анонов захочет рассказать. Поищите тред перезвонивших, а также раздел /wrk/.
- Сколько времени надо изучать все это? - все зависит от тебя, но не меньше 6-8 месяцев
- Посоветуйте редактор кода - Sublime Text 3, Notepad++, PhpStorm
- Нужен ли ООП, фреймворки, MVC, git, composer? — Да, однозначно. Посмотри любую вакансию.
- Что самое главное для программиста? Умение аккуратно оформлять код.
- ОП, сделай за меня мою работу или домашнее задание? — Это конечно, хорошая идея, но нет.
- Подскажи сайты для поиска работы, я не умею гуглить? — hh.ru, geekjob.ru, moikrug.ru (склеен с brainstorage.me), fl.ru, upwork.com (бывший одеск). Имей в виду, что кроме фриланса есть еще постоянная удаленная работа (remote job) когда тебе не надо тратить время на поиск заказов и переговоры с неадекватными заказчиками.


-------------------

Код нужно писать не как попало, а аккуратно и по правилам. Почему? Потому, что на неакуратно написанный код не хочется даже смотреть.

Если тебе лень выравнивать код руками, закачай его на http://beta.phpformatter.com/ и нажми «format». Робот исправит выравнивание и отступы в мгновение ока (да, прогресс не стоит на месте). Если ты используешь мощную IDE вроде PhpStorm, там тоже есть функция форматирования кода.

Горячие клавиши для форматирования кода в разных IDE: https://gist.github.com/codedokode/8759492

Вообще, в PHP долгое время не было единого стандарта оформления кода, все писали как попало и было много бардака, но сейчас дело лучше — есть стандарты PSR-1 и 2. Вот как надо оформлять код:

- переменные и функции пишутся с маленькой буквы, подчеркивание не используется, используется camelCase, пример: $x, $numberOfPeople, printResults()
- Название функции начинается с глагола, в стиле «сделайЧтоТо»
- не знаешь английский? Не беда, в 21 веке есть решение этой проблемы. Не пиши транслитом, открой лучше Гугл Транслейт или slovari.yandex.ru и найди название для переменной там
- в именах классов используется CamelCase, первая буква большая, «_» может использоваться
- мы предпочитаем подстановку переменных вместо конкатенации строк: "I am $age years old" — хорошо, 'I am ' . $age . ' years old' — плохо из-за обилия точек и кавычек
- мы используем для отступов 4 пробела (можно настроить редактор, чтобы при нажатии Tab он вставлял 4 пробела)

Вот ссылка на стандарты, где все это описано подробнее и даны примеры оформления:

PSR-1: https://github.com/samdark/fig-standards-ru/blob/master/accepted/ru/PSR-1-basic-coding-standard.md
PSR-2: https://github.com/samdark/fig-standards-ru/blob/master/accepted/ru/PSR-2-coding-style-guide.md
Аноним 2017/03/03 03:30:38  №945060 2
grammar-nazi.png (56, 500x644)
644x500
welcome-to-php.png (188, 853x480)
480x853
Код нужно писать не как попало, а аккуратно и по правилам. Почему? Потому, что на неакуратно написанный код не хочется даже смотреть.

Если тебе лень выравнивать код руками, закачай его на http://beta.phpformatter.com/ и нажми «format». Робот исправит выравнивание и отступы в мгновение ока (да, прогресс не стоит на месте). Если ты используешь мощную IDE вроде PhpStorm, там тоже есть функция форматирования кода.

Горячие клавиши для форматирования кода в разных IDE: https://gist.github.com/codedokode/8759492

Вообще, в PHP долгое время не было единого стандарта оформления кода, все писали как попало и было много бардака, но сейчас дело лучше — есть стандарты PSR-1 и 2. Вот как надо оформлять код:

- переменные и функции пишутся с маленькой буквы, подчеркивание не используется, используется camelCase, пример: $x, $numberOfPeople, printResults()
- Название функции начинается с глагола, в стиле «сделайЧтоТо»
- не знаешь английский? Не беда, в 21 веке есть решение этой проблемы. Не пиши транслитом, открой лучше Гугл Транслейт или slovari.yandex.ru и найди название для переменной там
- в именах классов используется CamelCase, первая буква большая, «_» может использоваться
- мы предпочитаем подстановку переменных вместо конкатенации строк: "I am $age years old" — хорошо, 'I am ' . $age . ' years old' — плохо из-за обилия точек и кавычек
- мы используем для отступов 4 пробела (можно настроить редактор, чтобы при нажатии Tab он вставлял 4 пробела)

Вот ссылка на стандарты, где все это описано подробнее и даны примеры оформления:

PSR-1: https://github.com/samdark/fig-standards-ru/blob/master/accepted/ru/PSR-1-basic-coding-standard.md
PSR-2: https://github.com/samdark/fig-standards-ru/blob/master/accepted/ru/PSR-2-coding-style-guide.md

------------------

Итак, ты зашел в тред и решил помочь какому-то анону, дав ему совет или подсказку. Спасибо! Но прочти сначала эти напоминания, чтобы твоя помощь действительно была полезной.

Давай удочку, а не рыбу

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

Будь доброжелателен

Не годится: «Ты мануал хоть раз в жизни открывал, обезьяна?»
Не годится: «В гугле забанили?»
Не годится: «Твой код плохой»
Хорошо: «Вот, как можно улучшить этот код: ...»
Хорошо: «Ты неправильно используешь функцию abc(). Вот ее описание: ссылка, и как видишь ей надо передать строку, а не массив»

Не придирайся к знанию английского или русского языка.

Объясняй

Не очень хорошо: «сделай как в этом коде»
Хорошо: «если ты вставляешь текст от пользователя в SQL запрос, то получается SQl-инъекция, которая позволяет взломать твой сервер (ссылки). Чтобы этого избежать, надо вставлять данные с помощью плейсхолдеров (ссылки)»
Хорошо: «Помни, что код пишется для людей. Если писать такие большие функции, то в них становится трудно разобраться...»

Не проповедуй

Мы учим использованию самых распространненных подходов, стандартов, библиотеки фреймворков. Если ты не любишь ООП, пробелы в коде, jQuery, сам PHP, то рассказать об этом стоит в каком-нибудь другом треде.

Не придирайся к знанию английского языка, анон пишет как умеет.

Ах да. Если тебе кажется, что что-то в учебнике или задачах можно сделать лучше — пиши, обратная связь всегда очень полезна.
Аноним 2017/03/03 03:32:37  №945061 3
Если я кого-то пропустил в старом треде >>919074 (OP) то напомните о себе здесь.
Аноним 2017/03/03 07:53:28  №945082 4
Какого хуя у пхпшторма нет комьюнити версии, а у пичарма есть? Пиздец дискриминация.
Аноним 2017/03/03 09:25:28  №945099 5
Возможно ли полюбить php? Вот питон как ламповая тяночка, с ней хорошо, но с ней нет будущего, она утянет на дно. А php - это не такая ламповая, но зато работящая тян. Я же смогу привыкнуть к php и полюбить его? Это же не язык уровня 1С - грязного вонючего бомжа?
Ответы: >>945139
Аноним 2017/03/03 10:11:12  №945120 6
Мозг уже плавится, ребятки помогите какой функцией отсортировать массив по малым числам на пикрилейтед
Ответы: >>945130 >>945131 >>945227
Аноним 2017/03/03 10:21:12  №945130 7
>>945120
У тебя видимо загвоздка в том, что ты не очень понимаешь что сортируешь. Наверное ты хочешь отсортировать массив по значению, хотя пытаешься через ключи.
http://php.net/manual/ru/array.sorting.php
Попробуй что-то из этого. ИМХО, у тебя очень хромает теория.
Ответы: >>945166
Аноним 2017/03/03 10:22:35  №945131 8
>>945120
для начала вот это начни использовать:
foonction coolestDumpYouEvaSeen($array) {
echo "<pre>";
print_r($array);
exit;
}

А потом еще сформулируй вопрос нормально. Что из твоего данного массива после сортировки должно получиться.
Ответы: >>945166
Аноним 2017/03/03 10:29:14  №945139 9
>>945099
Мне после Питона все языки говном кажутся.
До этого писал на пхп. Не представляю как бы снова пришлось писать на нём. Хотя ты мыслишь и делаешь правильно, на пыхе вакансий больше.
Ответы: >>945148
Аноним 2017/03/03 10:52:14  №945145 10
Зачем везде знаки доллара? Неужели нельзя было сделать то же самое, но без этих экселевских атавизмов?
Ответы: >>945152
Аноним 2017/03/03 10:54:34  №945148 11
>>945139
Но питон говно по сравнению с D
Ответы: >>945149
Аноним 2017/03/03 10:56:25  №945149 12
>>945148
C хаскелем бы смешнее зашло
Аноним 2017/03/03 11:00:02  №945152 13
>>945145
Спихдили из перла, проебав по пути всю идею.
Аноним 2017/03/03 11:17:31  №945166 14
>>945130
> Наверное ты хочешь отсортировать массив по значению
>>945131
> А потом еще сформулируй вопрос нормально. Что из твоего данного массива после сортировки должно получиться.
Ничего не получается. Есть уникальный id, есть значение, которое присваивается этому id. Нужно вывести все id, отсортировав по значению, которому им присвоено. Что-то вроде ORDER BY id
Аноним 2017/03/03 13:47:24  №945227 15
>>945120
asort() для кого придумали?
Ответы: >>945259
Аноним 2017/03/03 14:57:07  №945259 16
Безымянный.png (142, 1539x899)
899x1539
>>945227
Говно какое-то. Как этим пользоваться?
Аноним 2017/03/03 15:07:26  №945261 17
>>945259
Все, получилось. Слава аллаху
Аноним 2017/03/03 15:18:11  №945266 18
>>945259
>1000 строчек с присваиванием вместо цикла
>$peremennye_translitom
По-моему тебе уже только живительная эвтаназия поможет.
Ответы: >>945268 >>945285
Аноним 2017/03/03 15:19:22  №945268 19
>>945266
>>945259
Ну и до кучи
>быть долбоебом и не знать про +=
Хотя на фоне простыни вместо цикла это еще цветочки.
Аноним 2017/03/03 15:52:23  №945285 20
14832165593560.png (28, 410x410)
410x410
>>945266
> >$peremennye_translitom
Могу себе позволить. Я не кодер, которого ебет начальство за каждую орфографическую ошибку в доках, а управленец, который как раз ебет кодеров который ебет нижестоящее начальство, чтобы оно ебало вас


> По-моему тебе уже только живительная эвтаназия поможет.
Программист - это, блядь, бледная моль, шестеренка №64. Кто-то скажет "кококо, а как же Джобс, Гейтсс, Цукерберг?". А вот хуй, эти люди прославились как организаторы-управленцы-бизнесмены, а собственно код писали безликие макаки, на которым всем похуй.

Так что под шконку. Сколько я таких ограниченных перевидала
Аноним 2017/03/03 15:53:03  №945286 21
Подскажите, существует готовый скрипт для попапа пикч прям как на дваче (с возможностью перетаскивания и масштабирования)? Или придется все делать самому?
Смог найти только скрипты-галереи без масштабирования и перетаскивания.
Ответы: >>945302 >>945303
Аноним 2017/03/03 16:02:58  №945288 22
>>945285
що ты раскудахтался додик, что не пиши уже всем понятно что ты дебил
Аноним 2017/03/03 16:30:58  №945302 23
>>945286
Укради с двача че ты как не пират?
А вообще, 99% уже есть такой скрипт, нужно больше искать. Попробуй по-английски составить вопрос гуглу, либо например на stackoverflow создай тему на английском.
>>945285
Добавил в коллекцию паст, это блять эпично.

Алсо, пацаны объясните, как это работает:
>>945259
>if ($ballov -- 0) {} else { print... }
?
Ответы: >>945305
Аноним 2017/03/03 16:31:06  №945303 24
>>945286
Это называется lightbox, жс-либ для этого навалом.
Аноним 2017/03/03 16:32:59  №945305 25
>>945302
>Алсо, пацаны объясните, как это работает:
Это тоже самое, что if ($ballov != 0) без лишних элсов потом.
Аноним 2017/03/03 17:04:26  №945331 26
Ананасы, прочитал, что все ошибки теперь наследуются от Throwable. Однако, мой ExceptionHandler, который принимает Throwable, по-прежнему не перехватывает синтаксические ошибки, т. е. parseErrors. Что я не так делаю?
Ответы: >>945389 >>945704
Аноним 2017/03/03 17:49:49  №945389 27
>>945331
Алсо, перехватывает, если такие ошибки возникаю внтури классов. Но не работает, когда внутри обычного кода
Аноним 2017/03/03 17:52:39  №945391 28
Если у меня некоторые свойства объекта устанавливаются в конструкторе, должен ли я проверять их существование в других методах? Т.е. я как бы подсказываю пользователю класса, что для работы с этим методом необходимы такие-то условия, но с другой стороны есть гарант в виде, что они существуют. Правда где-то их могут очистить... Т.е. наверное все-таки нужно проверять их на существование.
Ответы: >>945392 >>945704
Аноним 2017/03/03 17:54:27  №945392 29
>>945391
> есть гарант в виде...
констркутора. фикс
Ответы: >>945394
Аноним 2017/03/03 17:56:50  №945394 30
>>945392
Конструктор чекает на нулл и невалидные значения? Публичные сеттеры есть? Если нет, то могут ли затереться значения где-то в коде класса? Если с этим всем разобрался, то можешь не проверять нихуя. Однако, поскольку код имеет свойство внезапно подвергнуться правкам твоей же рукой и ты уже забудешь где чего, то для верности можешь чекать вообще всегда.
Ответы: >>945395
Аноним 2017/03/03 18:02:53  №945395 31
>>945394
Да и вообще паранойя пограмистам еще никогда не мешала.
Аноним 2017/03/03 19:42:22  №945483 32
>>945285
Так пускай твои работники это все делают, хули ты тут делаешь? Хуевый ты управленец раз не можешь поручить такую простую задачу кому-то.
Ответы: >>945485
Аноним 2017/03/03 19:44:14  №945485 33
>>945483
Твое дело в код смотреть, а не управленцам тыкать, говно
Ответы: >>945488
Аноним 2017/03/03 19:45:00  №945486 34
>>945482
не увидел перекат.
Аноним 2017/03/03 19:46:08  №945488 35
>>945485
Тогда я ушел с твоей обоссаной галеры вместе с половиной команды, спиздил сорцы проекта, написал обличающую статьюу на хабре-хуябре и доу, гуд лак искать макак за доширак.
Ответы: >>945619
Аноним 2017/03/03 21:58:37  №945599 36
>>945285
Чего раскудахтался-то, придурок? Я в код заглядываю раз в 10 лет, чтобы отправить разъеботчикам не только exception.log, но и кусок говно кода, который надо поправить.
>перевидала
Ой, иди нахуй, зелень.
Аноним 2017/03/03 22:32:31  №945619 37
>>945488
Вы, мамкины кодеры, никчемные пустые людишки. Посредственности, серая масса. Жизнь ваша убогая, никто вас не любит, никому вы не нужны. Ваши "умные, нестандартные мысли" про спиздить сорцы и написать обличающую статью за пределами интернета никому не интересны, рассуждения уровня пятиклассника о жизни никто слушать не будет, а за особо дерзкие выпады и по ебалу могут накидать. У вас нет чувства юмора и эрудиции, чтобы остроумно шутить, нет знаний и жизненного опыта, чтобы поведать что-нибудь интересное предложениями больше чем из 3-х слов. Детские максимы, псевдознания, почерпнутые из роликов на ютубе и передач по рен-тв, стереотипы, рожденные в среде клешированного офисного планктона и нитакихкакфсе - вот и весь ваш "интеллектуальный" арсенал. Разумеется, ни девушку, ни взрослого, думающего человека таким богатством духа не заинтересовать. Вам хочется денег, славы, признания, но в жизни никто вас даже не замечает, как никто не замечает вошь на бездомной собаке. Вот и приходится вам, бедненьким, привлекать к себе внимание на интернет-пространстве самыми идиотскими высказываниями, на которые сбегаются точно такие же обделенные жизнью, чтобы поспорить, давать советы, увещевать, хоть как-то почувствовать себя чем-то "значимым" для кого-то на другой стороне провода. В интернете вы все аналитики. философы и выдающиеся мыслители современности, а на деле неуверенные в себе, зажатые, зависимые от родителей и мнения окружающих человечишки, прячущиеся в своей комнате от мира и людей, как тараканы от включенного ночью на кухне света. Мне вас жаль.
Ответы: >>945641
Аноним 2017/03/03 23:01:21  №945641 38
Аноним 2017/03/03 23:07:51  №945646 39
В чем профит использования констант для enum, как в задании к студентам написано?
Ответы: >>945700
Аноним 2017/03/03 23:49:16  №945676 40
Сапер. https://github.com/greenTea242/MinesweeperMVC

Оп посмотри, пожалуйста. Если правильно реализовал попап, то буду пробовать сделать виджет для меню.
Ответы: >>947761 >>956718
Аноним 2017/03/04 00:29:20  №945700 41
Нытики из перезвоним-треда, выкатитесь обратно плиз. Тут тред про обучение программированию, а не для жалоб на жизнь от всяких неудачников, не способных найти себе хорошую работу. Вы своим нытьем мешаете тем, кто учится.

>>945646

- название Student::GENDER_FEMALE намного больше говорит чем просто строка 'f'.
- сразу видно, какие константы есть и какие варианты значений доступны
- если ты опечатаешься в константе, будет фатальная ошибка, а в случае со строкой -это останется незамеченным
- в IDE будет работать автодополнение при вводе названия константы

Еще хуже было бы, если бы ты например использовал для обозначения пола числа 1 и 2 вместо строк, тогда вообще понять в коде было бы ничего нельзя без констант.
Аноним 2017/03/04 00:44:53  №945704 42
>>945391

> Если у меня некоторые свойства объекта устанавливаются в конструкторе, должен ли я проверять их существование в других методах?

А о каком языке идет речь? В PHP если ты в классе объявил свойство, то оно всегда существует и проверять ничего не надо. Или ты имеешь в виду, что в свойство могут записать неправильное значение?

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

Я бы советовал также подстраховаться и добавить проверку при чтении свойства, примерно такого вида:

если ($this->something неправильное) {
выбросить исключение;
}

Также, эту проверку можно сделать короче с помощью функции assert. Она правда не бросает исключение, а только дает warning:

assert($this->x > 0);

зато выглядит очень наглядно. Любому теперь ясно, что функция рассчитывается что в x будет положительное значение.

>>945331

Throwable это интерфейс, потому не наследуются, а реализуют. Это было сделано специально, чтобы можно было делать свои классы исключений, не наследующие Exception.

в новом PHP7 вроде бы ошибка синтаксиса вызывает исключение ParseError и его можно ловить: https://www.daveyshafik.com/archives/69237-an-exceptional-change-in-php-7-0.html

В мануале оно тоже еcть: http://php.net/manual/en/class.parseerror.php

http://php.net/manual/ru/function.set-exception-handler.php

Учти, что ловятся ошибки только в подключенных или выполненных через eval файлах.

Но я не очень понимаю, зачем это нужно. Если ты написал кривой код то программа дальше выполняться не может и надо исправить код.
Аноним 2017/03/04 04:13:07  №945782 43
Как освоить адаптивную вёрстку? какие есть хорошие уроки по этой теме, желательно чтобы с примерами реальных проектов, то есть чтобы показывался весь процесс адаптивной вёрстки из psd?
Ответы: >>945785 >>945786
Аноним 2017/03/04 04:22:48  №945784 44
>>945482

Мы уже в новом треде.

В каждой компании свои градации. Синьора из какой-нибудь провинциальной веб-студии в Гугле даже на собеседование на стажера не пустят.

Обычно эти градации соответствуют опыту:

- стажер - человек, как правило, студент, который пока не имеет нужных для полноценной работы навыков
- джуниор - человек с минимальным опытом, которому нужен постоянный надзор и помощь, что-то вроде разнорабочего на стройке
- миддл - человек с определенным опытом, способный сам решать более сложные задачи, оценивать их трудоемкость
- сеньор - человек с значительным опытом, способный руководить другими разработчиками, принимать решения, понимать, что нужно бизнес-заказчику (не красивый код с кучей абстракций, а быстрое и эффективное решение задач)

Если ты ни дня ни работал, то выше джуниора должность ты в принципе получить не можешь в связи с отсутствием опыта.

Что должен делать претендент на пост джуниора с 0 опытом работы? Конечно, учиться. Зубрить вещи, которые пригодятся ему на работе:

- алгоритмы и структуры данных
- объектно-ориентированное программирование
- понятный и самодокументируемый код (есть книга "Совершенный код" на эту тему)
- системы контроля версий (git)
- если ты вебщик, то веб-технологии (HTML, CSS, JS)
- базы данных, SQL, нормальные формы, транзакции
- изучать популярные инструменты, библиотеки и технологии (фреймворки например)

Так как у такого кандидата нет опыта работы, то говорить на собеседовании с ним про предыдущие проекты смысла нет. Потому их гоняют по теории, то, что я перечислил выше, про ООП, про нормальные формы, как найти число в массиве, что нового появилось в последнем PHP.

Кстати, специально для такого целеустремленного тебя, у меня есть сборник реальных задач с собеседований: https://github.com/codedokode/pasta/blob/master/interview-tasks.md

Конечно, не везде это нужно. В провинциальной веб-студии, чтобы попасть на должность перекрашивателя меню и натягивателя верстки на CMS, это может не потребоваться. Но ты ведь вряд ли заинтересован в том, чтобы этим всю жизнь заниматься. Наверняка ты хочешь быть полноценным разработчиком в большой команде, разрабатывающей какой-нибудь серьезный продукт.
Аноним 2017/03/04 04:35:06  №945785 45
>>945782

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

Также добавляется тег meta viewport, который заставляет браузер рендерить страницу под реальную ширину устройства, а не имитировать экран шириной 900px и заставлять пользователя приближать текст.

Я советую начать с изучения примеров адаптивных сайтов. Гугли статьи вроде "примеры адаптивных сайтов" и смотри примеры там, чтобы понять, как это обычно выглядит. Если у тебя нет смартфона, то ты можешь имитировать мобильный браузер, сделав окно узким либо открыв инструменты разработчика (Ctrl + SHift + I) и нажав там кнопочку со смартфоном.

Технически нужно изучить всего несколько вещей:

- медиа-запросы CSS @media
- тег meta viewport, говорящий браузеру, что страница адаптирована под мобильные устройства

У нас в ОП-посте есть задачи на CSS и там есть макет, которй надо свестать в том числе с адаптивностью

Иногда еще добавляют адаптацию страницы под экраны с высокой плотностью пикселей (ретина), чтобы для них использовались картинки более высокого разрешения. Гугли HTML-атрибут srcset и теги picture, source.

Вообще, адаптивность не ограничивается мобильными устройствами. Есть и другие вещи, которые можно улучшить. Ну например, при печати страницы ссылки становятся недоступны (ты не можешь кликнуть пальцем на бумагу). Можно в таких случаях сделать правило, чтобы при печати выводились URL ссылок. Изучи медиа-запросы, там много разных опций.
Аноним 2017/03/04 04:37:43  №945786 46
>>945782

Вот еще скопирую старый ответ на эту тему:

------

Адаптивность значит способность отображаться на разных устройствах с учетом их особенностей. И это обычно не просто уменьшение шрифта. На мобильных устройствах (адроид/айфон) браузер по умолчанию рисует страницу на холсте шириной 800px точнее, 960px и отображает в уменьшенном виде. Пользователь кликает, чтобы ее увеличить, и если абзацы широкие, то ему приходится прокручивать экран вправо-влево чтобы читать текст (увидеть все это можно тут: http://www.youtube.com/watch?v=-1haU-WRMoA если ты с этим явлением не знаком).

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

Смартфон также может быть повернут набок — тогда ширина экрана получается больше. Кроме смартфонов, есть планшеты, где ширина экрана большая, но используется палец вместо мыши.

Соответственно, адаптивные сайты на мобильных устройствах часто меняют расположение контента так, чтобы информация была в виде узкой вертикальной полосы и не требовала зума и прокрутки вбок. Элементы управления, кнопки, делают крупными. Для этого применяют такие вещи:

1) правило @media в CSS которое позволяет применять блок правил только при определенных условиях (ширина экрана меньше определенного значения — например меньше 640px). Информация:

http://htmlbook.ru/css/value/media
http://htmlbook.ru/css/media

(обрати внимание, сколько разных видов устройств поддерживается — можно отдельно задавать стили для телевизоров, а отдельно для печати)

Заметь что @media не поддерживается в старом ИЕ, потому логично верстать страницу по умолчанию под обычные браузеры, а правила для маленьких экранов заключить внутрь @media, который ИЕ наверно проигнорирует (если нет — выносим в отдельный файл и подключаем через условные комментарии).

Кстати, насчет vw, ты можешь делать так:

font-size: 14px; // правило для старых браузеров
font-size: 5vw; // правило для CSS3 браузеров

Это будет работать, если писать в таком порядке так как браузеры игнорируют свойства которые они не поняли.

2) тег meta viewport который говорит мобильному устройству что страница учитывает его особенности, и указывает что ее надо рисовать на холсте, равном реальной ширине экрана, чтобы отображалась в 100% масштабе. Часто (подозреваю по незнанию) запрещают зум, хотя мне это не нравится — может у человека маленький экран и плохое зрение и он хочет увеличить текст. Я против таких штук, но среднестатистический верстальщик делает такие вещи методом «скопипастил из интернета» и сам часто не понимает что он делает.

Инфо:
http://frontender.com.ua/mobile-web/wtf-viewport/
http://frontender.com.ua/mobile-web/useful-mobile-head-elements/
http://www.quirksmode.org/mobile/metaviewport/

(только не копируй оттуда куски кода бездумно)

Соответственно, вот примеры реализации адаптивной верстки (уменьши ширину окна чтобы увидеть изменения):

http://foodsense.is/ (комментарии под постами здесь не адаптивные)
http://alistapart.com/d/responsive-web-design/ex/ex-site-FINAL.html
http://robot-or-not.com/
http://spigotdesign.com/

Заметь что там шрифт нигде не меняется.

Если ты понимаешь английский, то вот еще неплохой гайд по основам адаптивного дизайна: https://developers.google.com/web/fundamentals/layouts/

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

Аноним 2017/03/04 08:20:59  №945813 47
Что означат значение size для числовых типов в SQL? Количество цифр или велечину значения?

Проверяю на практикте:

mysql> CREATE TABLE test (number INT(6), text VARCHAR(6));
Query OK, 0 rows affected (0,41 sec)

mysql> INSERT INTO test VALUES (7, "abcdef");
Query OK, 1 row affected (0,16 sec)

mysql> INSERT INTO test VALUES (7777777, "abcdef");
Query OK, 1 row affected (0,05 sec)

mysql> INSERT INTO test VALUES (7777777, "abcdefg");
ERROR 1406 (22001): Data too long for column 'text' at row 1

Как такое может быть? Это значение не на что не полвияло.
Ответы: >>945815 >>945830
Аноним 2017/03/04 08:37:59  №945815 48
>>945813

Цифра в скобках значит разные вещи для разных типов данных.

https://dev.mysql.com/doc/refman/5.7/en/numeric-types.html (англ)
https://dev.mysql.com/doc/refman/5.7/en/numeric-type-attributes.html
https://dev.mysql.com/doc/refman/5.7/en/floating-point-types.html

http://phpclub.ru/mysql/doc/numeric-types.html (рус)

Для типов вроде INT это просто рекомендуемая ширина колонки при выводе чисел
Для DECIMAL задает точность в знаках
Для FLOAT - точность, но не в знаках, а в битах, выделяемых под хранение мантиссы (влияет на то, будет ли использоваться для хранения числа 4 или 8 байт). Если указать 2 числа, то точность в знаках, до которой числа принудительно округляются.
Аноним 2017/03/04 09:17:51  №945830 49
>>945813
Может. Так как значения для номеров в скобках это не размер(он всегда фиксирован для инт типов), а количество цифр для отображения при запросе, например, mysql консольным клиентом.
Задачка про лайки Аноним 2017/03/04 09:35:55  №945839 50
Ответы: >>947757
Аноним 2017/03/04 10:22:44  №945877 51
Вот у меня такая структура проекта (пикрил). Как мне получать адрес папки src из любого места? Ну, я пишу контроллер, в нем метод render, который должен в соответствии с запросом отображать файл из папки views.

[code]
$_SERVER["DOCUMENT_ROOT"]. '/students/src/views/'. $view.'.php'
[/code]

Что-то подсказывает мне, что это говнокод.

Если использовать __DIR__, то у меня получается папка /src/controllers, так как класс контроллера расположен там.
Ответы: >>945962 >>946004
Аноним 2017/03/04 10:47:48  №945887 52
1488613817795.jpg (262, 1684x736)
736x1684
Сап, помогите вот с этой хуйней. Вроде бы и легко, но решить что-то не могу.
Ответы: >>945962
Аноним 2017/03/04 12:16:24  №945940 53
Аноним 2017/03/04 12:47:11  №945962 54
>>945877
мои глаза. просто возьми фреймворк и не парься.
>>945887
дебильные задачки для тупых олимпиадников. даже текст задачи нормально составить не могут. какие-то склеенные банкноты, натуральные числа, вообще ахуеть.
Ответы: >>945997
Аноним 2017/03/04 12:47:39  №945963 55
>>945940
У тебя в шаблонах код контроллера. Шаблоны только отображают переданные сверху данные, а не обращаются к HTTP/выполняют SQL-запросы, как в твоём случае.
Формирование ссылки на CSS в контроллере выглядит странным (HTML это код шаблона, а не контроллера). Контроллер у тебя создаёт PDO, лучше бы передавать в контроллер сразу AbiturientGateway. Контроллеры в студентах необязательно делать классами, хватит двух скриптов list.php и form.php, которые будут разбирать HTTP-запрос, обращаться к модели и в конце подключать шаблон. Валидировать студента - не ответственность Gateway, нужно вынести валидатор оттуда. Мне кажется, что ты не читал пасту про MVC: https://github.com/codedokode/pasta/blob/master/arch/mvc.md
Исполняемый файл композера, папки vendor и .idea в системе контроля версий нет смысла хранить, добавь их в .gitignore
Ответы: >>945997 >>946178
Аноним 2017/03/04 12:48:39  №945964 56
Ответы: >>945997
Аноним 2017/03/04 12:48:53  №945966 57
>>945940
foreach ($this->css as $css){
$list .= "<link rel = 'stylesheet' href = '". $css ."'>\n";
}
бляяя, такого ахуенного подключения стилей прямо в контроллере я еще не видел. просто 10 из 10 говнокод.
Ответы: >>945974 >>945997
Аноним 2017/03/04 12:50:57  №945971 58
>>945940
>htmlspecialchars($_GET['action']);
Ты нахрена так делаешь, у тебя что в контроллере SQL инъекция может быть?
Ответы: >>945997 >>946001
Аноним 2017/03/04 12:53:41  №945974 59
>>945966
Я честно говоря даже боюсь подумать нахуя так делать то.
Аноним 2017/03/04 12:54:15  №945975 60
Привет, аноны.

Мы потихоньку пилим сообщество тех, кто учит вёрстку, полноценный frontend или же backend - https://vk.com/webdevheroes

Учимся вместе, чтоб было поменьше прокрастинации, поддержка, все дела.

Всех, кто желает получить новую специальность или кому просто интересно, приглашаю начинать учиться вот прямо сейчас: https://vk.com/webdevheroes

Большинство начинают учить по этому курсу с самого начала: https://htmlacademy.ru/courses

Какие-то аноны учат по книгам, кто-то по другим сайтам. Заходите, рассказывайте о том, как учите, к чему стремитесь, и, самое главное, просите помощи, если есть трудности.

Что я могу предложить от себя? На данный момент имеется два с половиной наставника, конференция вконтакте и группа там же. Бесплатно.

Если у вас возникнут вопросы - можете задать их в группе или же в конференции.

https://vk.com/webdevheroes
Аноним 2017/03/04 12:55:37  №945979 61
>>945940

require_once './../config/db.php';
require_once './../vendor/autoload.php';
use ghoul\controllers\SiteController;
use ghoul\helpers\gateways\AbiturientDataGateway;
use ghoul\models\Abiturient;
$action = empty($_GET['action']) ? "index" : htmlspecialchars($_GET['action']);
$site = new SiteController($config);
$site->registerCss("css/style.css");
$abiturientGateway = new AbiturientDataGateway($site->pdo);
?>

<html>
<head>
<title>Список абитуриентов</title>
<?=$site->getCssList()?>
</head>
<div class = "wrapper">
<?php $site->render($action) ?>
</div>
</html>

Html код у тебя отдельно в папке вью лежит, ты по ходу не понял mvc, просто возьми пример mvc с хабра и давай-ка переписывай это все.


https://github.com/TheUnravelGhoul/Students/blob/master/src/views/index.php

Метод POST у тебя тоже должен быть в контроллере отдельно от html, а не во вьюхах. Во вьюхи выводится только хтмл код и переменные, которые ты передаешь во вью через контроллер. Весь код лежит в контроллерах или моделях. Во вью только циклом по массиву, который лежит в переменной, переданной через контроллер, можешь пройтись.
Ответы: >>946178 >>947754
Аноним 2017/03/04 13:02:48  №945987 62
чем пхп лучше Джанги или разницы нет,результат один?
Ответы: >>945994 >>946024
Аноним 2017/03/04 13:06:52  №945994 63
>>945987
Джанга лучше пхп, фласк лучше джанги. Питон лучше пхп. На питоне нет работы, на пхп дохуя. Выбор за тобой.
Ответы: >>945995
Аноним 2017/03/04 13:07:36  №945995 64
>>945994
почему такой парадокс?
Ответы: >>946003
Аноним 2017/03/04 13:08:28  №945997 65
>>945962

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

Вообще, твой комментарий тут довольно бесполезный. Лучше бы и не писал.

>>945963

Контроллеры можно делать и классами, и скриптом, и так и тк можно.

>>945964
>>945966

Он не сеньор с 20 годами опыта чтобы с первого раза все идеально написать. Не понимаю, в чем твоя претензия.

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

>>945971

Прочитай второй пост внимательно прежде чем комментировать.


Ответы: >>946009 >>946029 >>946178
Аноним 2017/03/04 13:09:48  №946001 66
Ответы: >>946032
Аноним 2017/03/04 13:10:37  №946003 67
>>945995
Какой еще парадокс? По-моему тут все логично и очевидно.
Ответы: >>946005
Аноним 2017/03/04 13:11:46  №946004 68
>>945877

Есть варианты. Во-первых можно писать так:

__DIR__ . '/../src/';

.. - значит подняться на 1 уровень выше

можно так:

dirname(__DIR__) . '/src/xxx';

Аноним 2017/03/04 13:12:01  №946005 69
>>946003
питон лучше,но мало работы.ват а фака?
Ответы: >>946011
Аноним 2017/03/04 13:15:00  №946009 70
>>945997
>Вы прежде чем комментировать, не пробовали понять, что тут происходит, что это за тред и зачем люди здесь код постят? В ОП посте написано, прочитайте сначала.
Да я не придираюсь, просто мне было бы реально интересно понять ход мыслей - зачем в объекте хранить подключение таблицы стилей. А так у него типичная проблема неофита -понимание MVC.
Ответы: >>947754
Аноним 2017/03/04 13:16:09  №946011 71
>>946005
На пхп очень много всего написано. Куча ORM, фреймворков и т.п. А на питоне? Собственно питон же и не заточен чисто на веб, а вот пхп полностью, того он в нем и доминирует, ничего странного.
CSS 1-5 Аноним 2017/03/04 13:19:11  №946012 72
Ответы: >>947754
Аноним 2017/03/04 13:19:21  №946013 73
>>946011
Но на пистоне можно писать все то же самое, что и на пхп, только в разы изящнее. Еще руби есть, он например тоже заточен только под веб.
Все дело в говноедстве пидорах, эти тупые уебаны без чувства прекрасного будут еще сто лет форсить убеанскую хуйню, типа 1С или хостинга всего и вся на шинде и аспе. Эта тяга к безвкусице и некрасивым решениям, костылям и говну уже в крови.
Ответы: >>946014 >>946021 >>946023
Аноним 2017/03/04 13:21:40  №946014 74
>>946013
как буд то на западе этого нет.питоном пользуються в основном узкая прослойка проэктов,заточеная на что то новое
Аноним 2017/03/04 13:23:54  №946018 75
>>946011
>куча фреймворков
Пхп:
Cимфони, ларавел. Остальное хуйня для хипстеров.
Питон:
Джанга, фласк Остальное хуйня для хипстеров.
Ответы: >>946130
Аноним 2017/03/04 13:26:00  №946020 76
>>946011
короче,зря я бросил пыху,дохуя времени потратил на питон
Аноним 2017/03/04 13:26:03  №946021 77
>>946013
>Но на пистоне можно писать все то же самое, что и на пхп, только в разы изящнее.
Так бери и пиши, в чем проблема? Вот когда будут полноценные альтернативы симфони, доктрины, зенда и прочего - тогда посмотрим, может пхп и зафейлится. Понимаешь, "изящность" это ну очень мутное преимущество. Я например не перевариваю snake-case и табуляцию как часть синтаксиса.
>Еще руби есть, он например тоже заточен только под веб.
Руби ВСЁ, официально.
Аноним 2017/03/04 13:28:34  №946023 78
>>946013
зато для веба надо выучить питон,а потом еще и фраймворк и дрочить его.а на пыхе сразу в бой
Ответы: >>946028
Аноним 2017/03/04 13:29:30  №946024 79
>>945987
джанго говно каждый школьник в своем тех.пту учит, а потом эти толпы после выпуска со знаниями одной джанги валят на рынок труда и переполняют его.
Ответы: >>946027
Аноним 2017/03/04 13:29:52  №946025 80

аноны, как мне подключится к
ssh://[email protected]:22111/dev.git
Ответы: >>946034 >>947748
Аноним 2017/03/04 13:31:41  №946027 81
>>946024
пиздеж,так сразу в него не вкатишься
Ответы: >>946046
Аноним 2017/03/04 13:32:03  №946028 82
>>946023
>зато для веба надо выучить питон,а потом еще и фраймворк и дрочить его
Пыха:
Учишь пыху, учишь фреймворк, дрочишь его. ЧЯДНТ?
Ответы: >>946031
Аноним 2017/03/04 13:32:08  №946029 83
>>945997
Я сам учился кодить в этом треде и сейчас уже джуном работаю, но даже я на начальных этапах начинал с верстки и таких ошибок в мвц не делал. он даже мвц толком не написал, а создал какого-то монстра, мог просто погуглить статьи о мвц и ПОВТОРИТЬ простенький апп-бутсрап.
Аноним 2017/03/04 13:32:49  №946031 84
>>946028
можно сразу на пхп
Ответы: >>946033
Аноним 2017/03/04 13:33:15  №946032 85
>>946001
а зачем в гет запросе, который передается в урл эскапировать html тэги? Это приведет только к искажению урла, который ты получаешь гетом.
Аноним 2017/03/04 13:33:16  №946033 86
Ответы: >>946035
Аноним 2017/03/04 13:33:32  №946034 87
Аноним 2017/03/04 13:34:15  №946035 88
Аноним 2017/03/04 13:35:03  №946038 89
Что надо использовать на яваскрипте, чтобы при наведении мышки на ссылку показывалась одна из картинок, которая находится по этому адресу?

1. Если это ссылка на другую страницу этого же сайта, но адрес на картинку недоступен на этой страницы из запроса к базе данных.
2. Если это ссылка на другой сайт.

Я так понял тут нужны какие-то парсеры чтоли, но как их делать на яваскрипте?
Ответы: >>947748
Аноним 2017/03/04 13:39:35  №946042 90
у нас на работе кстати работает джунша с вышкой тех.вуза, которая не знает, как делать мвц и не может во фреймворки. до сих пор все ручками пишет и ведь ее говноподелия с уродской админкой впариваются заказчикам. у меня просто глаза вытекли, когда она данные в форме на пустоту не проверила, даже элементарный required в инпуты не поставила. И такой-то шок у меня был после пхп треда, где учили делать самостоятельно мвц и дрочили за отсутствие валидации форм.
Зато любит матан и создает рандомные многоугольники через синусы всякие. Еще один пруф, что матанобляди не могут в кодинг
Ответы: >>946054
Аноним 2017/03/04 13:40:53  №946046 91
>>946027
поэтому и не вкатишься, что его каждый школьник с нейросетями в вузах типа бауманки учит, а потом со 2ого курса идет работать.
Ответы: >>946048
Аноним 2017/03/04 13:42:31  №946048 92
>>946046
на них работы мало
Ответы: >>946053
Аноним 2017/03/04 13:44:57  №946053 93
>>946048
на всем, чему учат в вузах, нет работы, потому что там программа устарела лет на 50. еще спроси, почему нет работы для паяльщиков микроконтроллеров, хотя этому учат в вузах.
Аноним 2017/03/04 13:45:11  №946054 94
>>946042
Лол. Зато если тебе когда-нибудь поставят задачу написать граф, ну там поиск пути - ты соснешь, а она на повышение пойдет.
Ответы: >>946101
Аноним 2017/03/04 13:48:31  №946062 95
>>946043
Все, кто учился на спецухе - тупо проебал 4 года впустую.
Ответы: >>946067
Аноним 2017/03/04 13:50:02  №946065 96
>>946058
Пруфов нет, иди нахуй.
Ответы: >>946070
Аноним 2017/03/04 13:50:21  №946067 97
14787106241360.png (190, 400x400)
400x400
>>946062
там могут преподавать полную ересь-но без бумашки,ты какашка.а с бумашкой-человек
Ответы: >>946069
Аноним 2017/03/04 13:51:16  №946069 98
>>946067
Прогнулся под мамкин форс?
Ответы: >>946078
Аноним 2017/03/04 13:51:29  №946070 99
>>946065
как и у вас в обратку.весь этот хайп,о том что кодинг последний вагон уходящего поезда возможностейЮмиф для быдла
Ответы: >>946079
Аноним 2017/03/04 13:52:56  №946076 100
Блять, да выкатывайтесь вы из этого треда, у нас тут изучанеие похапе а не платиноые срачи. Пожаловался моче на уебков короч.
Ответы: >>946112
Аноним 2017/03/04 13:53:18  №946077 101
ОП, может лучше на Доброчане тред создавать? Или создавать 2 PHP-треда, в одном - задачки и ответы, во втором пусть люди обсуждают важность ВО, а управленцы будут унижать кодеров. До 500-го поста в треде один трём ни о чём.
Ответы: >>946082 >>946455 >>947748
Аноним 2017/03/04 13:53:20  №946078 102
>>946069
еще раз,нет диплома,тебя не возьмут,особенно по джаве и плюсам,может макакой пхпешной и то маловероятно
Ответы: >>946097
Аноним 2017/03/04 13:53:42  №946079 103
>>946070
>кодинг последний вагон уходящего поезда возможностей
Щито? У тебя какой-то неправильный манямирок.
Кодинг это сознательный выбор, никакого хайпа.
Короче, не вижу смысла дальше общаться с тобой, укатывайся на софтач траллировать.
Ответы: >>946083
Аноним 2017/03/04 13:54:26  №946082 104
>>946077
Доброчан давно мертв, а доброчановские аноны - гнилье анимешное.
Аноним 2017/03/04 13:54:42  №946083 105
>>946079
еще как хайп,миллионы говно сайтов с азами как бы намекают и книги изучим говно за 21 день
Ответы: >>946088
Аноним 2017/03/04 13:56:44  №946088 106
14687984213850.jpg (92, 562x452)
452x562
>>946083
поэтому в программаче я предлагаю создать тред о РЕАЛИЯХ кодинга в плане менеджмента,финансов и требованиях
Аноним 2017/03/04 13:57:07  №946089 107
Ого сколько зелени в треде! Какой лучше изучать фреймворк первым? Склоняюсь к симфони и yii 2. Посоветуйте мануалы по симфони.
Ответы: >>946095 >>946098
Аноним 2017/03/04 13:59:07  №946095 108
>>946089
Ии2 самый поплуярный. Или ларавель, хуй знает. Симфони и зенд это для илитки уже, не влезай пока не будет хотя бы года кодинга.
Аноним 2017/03/04 13:59:28  №946097 109
980x.jpg (28, 420x420)
420x420
>>946078
но меня уже взяли.
Ответы: >>946099
Аноним 2017/03/04 14:00:04  №946098 110
14846769968690.png (45, 532x495)
495x532
>>946089
мониторь сайты с работой отсюда и делай вывод
реалист кун
Аноним 2017/03/04 14:00:32  №946099 111
>>946097
пруфов как всегда не будет
Аноним 2017/03/04 14:00:52  №946101 112
>>946054
>веб
>написание графов
вылези из своих маняфантазий. она разве что синус у треугольника посчитает и ребро у ромба найдет.
Аноним 2017/03/04 14:01:29  №946106 113
УХОДИТИ! ТУТ ЛАМПОВЫЙ ПХП ТРЕНДЖ!
Ответы: >>946108
Аноним 2017/03/04 14:02:57  №946108 114
14777588802290.jpg (140, 736x736)
736x736
>>946106
нахуя ты его учишь?пополнишь ряды говнокодеров
Аноним 2017/03/04 14:03:46  №946110 115
Сириусли единственная причина проебать 5 лет в вузе - это если у тебя родоки богатые, они готовы тебя кормить пять лет и еще и за вуз доплачивать. А также ты хочешь 5 лет пропинать хуи, поебывая однокурсниц и ходя на общажные вписки. Все. Т.е. это просто такая дыра, куда ты должен убить 5 лет своей жизни только потому, что работодатели не любят нанимать малолеток до 23 лет ибо они нестабильны из-за гормонов и амбиции через край.
Ответы: >>946114 >>946118 >>946124
Аноним 2017/03/04 14:04:24  №946112 116
>>946076
как будто это не правда
Аноним 2017/03/04 14:05:54  №946114 117
>>946110
вот.образование полное дно без практики.но без диплома ты говно
Ответы: >>946124
Аноним 2017/03/04 14:06:37  №946118 118
>>946110
Но ведь работодатели любят нанимать малолеток. Сейчас придешь в контору 22+ - сразу начнутся подозрительные взгляды - а где вы до этого хуи пинали?
Ответы: >>946121 >>946124 >>946125
Аноним 2017/03/04 14:08:07  №946121 119
14698752529090.png (45, 300x300)
300x300
>>946118
потому что малолеток можно ебать в хвост и гриву,за маленькую зп
Аноним 2017/03/04 14:09:20  №946124 120
>>946118
>>946114
>>946110

Нытики, выкатывайтесь в свой нытик-тред и перестаньте оффтопить. Это тред изучения PHP
Ответы: >>946126
Аноним 2017/03/04 14:10:31  №946125 121
>>946118
Любят, но только в днищеконторы на мелкую зп, где дикая потребность в кадрах.
Давайте лучше перекатимся с этим обсуждением в перезвони тред.
Аноним 2017/03/04 14:10:54  №946126 122
14813929648000.jpg (34, 250x298)
298x250
>>946124
зато как оживился тред!
Аноним 2017/03/04 14:17:57  №946130 123
>>946018
Работаю на yii и phalcon. Я у мамы хипстер.
Ответы: >>946132
Аноним 2017/03/04 14:18:36  №946132 124
>>946130
для хипстеров есть НОДа
Ответы: >>946134
Аноним 2017/03/04 14:19:44  №946134 125
>>946132
На ней тоже работаю кстати. Правда в меньшей степени гораздо.
Аноним 2017/03/04 14:22:04  №946138 126
как правильно организовать передачу аргументов в функцию?
Ответы: >>947748
Аноним 2017/03/04 14:25:24  №946146 127
Почему на ОП-пиках котики? Здесь есть какая-то логическая связь?
Ответы: >>946151 >>946156
Аноним 2017/03/04 14:26:57  №946151 128
Аноним 2017/03/04 14:32:05  №946156 129
>>946146
потому что мы тяночки-анимешницы с доброчана.
Аноним 2017/03/04 14:37:06  №946161 130
на чем работает двач?
Ответы: >>946167
Аноним 2017/03/04 14:41:54  №946163 131
blob (344, 604x604)
604x604

Аноним 2017/03/04 14:43:27  №946167 132
Ответы: >>946169
Аноним 2017/03/04 14:44:36  №946169 133
Аноним 2017/03/04 14:48:22  №946173 134
объясните,как работает return?
Ответы: >>947748
Аноним 2017/03/04 14:53:33  №946178 135
>>945979
>>945963
>>945997

Спасибо. Вообще, я с MVC столкнулся в первый раз, фактически. До этого говнокодил как попало, сейчас пытаюсь исправляться.
Ответы: >>946181 >>946184 >>946230
Аноним 2017/03/04 14:58:52  №946181 136
>>946178
Если тебе тяжело понять это, советую потратить денек на http://nnmclub.to/forum/viewtopic.php?t=1046622 второй курс, 1-4 уроки. Только я например так и не понял зачем он там синглтоны пихает, но MVC поясняет очень хорошо. Да, я знаю что смотреть курсы - тупиковый путь, но там просто лектор реално хороший.
Ответы: >>946230
Аноним 2017/03/04 14:59:27  №946183 137
blob (86, 614x879)
879x614
Аноним 2017/03/04 15:00:09  №946184 138
Если я правильно понимаю хабростатью про MVC, то:

1) Весь код содержится в контроллере.
2) В view содержится только html с выводом необходимых переменных.
3) Вызывать view через include(файл) в контроллере - это нормально.

Где я не прав, поправьте.

>>946178 -кун
Аноним 2017/03/04 15:03:31  №946185 139
>>946184
В моделях содержится вся работа с данными. Вьюхи, понятно, чисто для рендера. Контроллер как связующее звено между всем этим выступает. Вьюха дергает контроллер - контроллер дергает модели (а может и не дергать) - контроллер дергает вьюху какую-то, чтоб та отрендарилась и так до усеру.
Стоит заметить, что это вебовское mvc, каноничное вообще не так работает, а тут это скорее mvp напоминает.
Ответы: >>946230
Аноним 2017/03/04 15:05:50  №946187 140
> контроллер дергает модели (а может и не дергать)

Это понял.

>контроллер дергает вьюху какую-то, чтоб та отрендарилась
Тоже понял.

>Вьюха дергает контроллер
А вот это - не совсем. Вью же отвечает только за отображение информации, райт? Она не должна трогать контроллер, разве что в плане получения из него каких-то данных для рендера.
Ответы: >>946190 >>946194
Аноним 2017/03/04 15:11:53  №946190 141
>>946184
Ты совсем не понял. MVC не значит, что у тебя должен быть определенный набор файлов, скриптов, это логическое разделение кода. Контроллер - это часть кода, куда попадает запрос пользователя. Он обрабатывает запрос и передает необходимые данные модели. Модель - это код отвечающий за всю логику приложения считай. Вычисления, сущности, операция с БД - это все модели. Сама по себе данные для работы она получает только из контроллера(запомни, это важно). Получив необходимые данные модель отправляет их контроллеру, тот уже подключает шаблон(через include например). Как-то так.
>>946187
Котнроллеры должны дергать всякие методы. Модель и вьюха живут отдельно и не знают о существовании друг друга.
Ответы: >>946193 >>946230
Аноним 2017/03/04 15:17:49  №946192 142
Ответы: >>946198 >>946312 >>948039
Аноним 2017/03/04 15:19:45  №946193 143
>>946190
Да нет же, я понимаю это. Наверное, просто не совсем ясно выразился.

>Сама по себе данные для работы она получает только из контроллера(запомни, это важно)
Спасибо, запомню.



Аноним 2017/03/04 15:20:04  №946194 144
>>946187
Ну это я образно, типа жизненный цикл запроса описал с учетом, что страница в браузере это уже отданная клиенту вьюха. Ну да, технически это не вью, я выразился так просто. Давай по новому, клиент делает запрос откуда то, твое приложение его роутит и он приходит на контроллер, контроллепр работает с моделями и сам чет делает, что считает нужным (логику работу с данными, однако, ты инкапсулируешь в модели), в конце концов контроллер отдает какие-то данные вьюхе, та их использует для рендера статики, ну а статика уже выплевывается обратно клиенту.
Ответы: >>946197
Аноним 2017/03/04 15:21:08  №946196 145
Есть альтернативы мануалу по YII2 на русском языке? На рутркере в топе Сафронов М. - Разработка веб-приложений в Yii 2, но ее не очень хвалят в комментариях.
Ответы: >>946199
Аноним 2017/03/04 15:22:06  №946197 146
>>946194
Вот, теперь понятно, спасибо.
Аноним 2017/03/04 15:22:16  №946198 147
2017-03-0415-27-16.png (24, 1464x841)
841x1464
Аноним 2017/03/04 15:22:41  №946199 148
Аноним 2017/03/04 15:49:50  №946217 149
Я с довольно дурацкой проблемой пришел, прямо затупил в этот раз.
Есть уже большое приложение с рест апи, все как всегда. Но один из маршрутов возвращает кириллицу в виде "????". Весь проект на utf-8, вся база в utf8-general-ci. Откуда по совершенно такому же гет запросу, как и остальные, вдруг меняется кодировка ума не приложу. (жизненный цикл абсолютно одинаков для каждого гет запроса) Во время выполнения самого приложения вплоть до отдачи из контроллера данные в нужной кодировке находятся. Вот такие дела. С учетом этого можно все это обойти просто сделав эхо прямо из контроллера, но хотелось бы все же понять в чем дело то может быть.
Ответы: >>947742
Аноним 2017/03/04 16:08:52  №946230 150
>>946184
>>946181
>>946178

Гляньте тогда и мой урок по MVC: https://github.com/codedokode/pasta/blob/master/arch/mvc.md

>>946184

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

> Вызывать view через include(файл) в контроллере - это нормально.
В общем, да.

>>946185

>Вьюха дергает контроллер - контроллер дергает модели (а может и не дергать)

Не, такого нет. Бывают архитектуры, когда вью вызывает методы модели, чтобы получить у нее какие-то данные, но в вебе обычно это делает контроллер и передает полученные данные во вью, а оно только их отображает.

Нельзя вызывать контроллер, это не модель, чтобы кому-то какие-то данные предоставлять.

Контроллер просто принимает данные от браузера (например, анализирует GET/POST) и затем вызывает модель и вью.

>>946190

> Сама по себе данные для работы она получает только из контроллера(запомни, это важно). Получив необходимые данные модель отправляет их контроллеру
Не совсем так. Правильнее сказать, что контроллер вызывает методы модели, чтобы получить какие-то данные или изменить их.

Условно говоря, модель содержит всю логику приложения, кроме вывода данных (это задача вью) и приема HTTP запросов от браузера (это работа контроллера). То есть любое действие в приложении можно сделать программно, вызывая методы модели. Хочешь получить список студентов? есть такой метод. Хочешь найти студентов по ключевому слову? Есть такой метод. Хочешь добавить нового студента? Есть и такой метод. То есть имея только модель, ты можешь программно (вызывая функции) делать все действия, которые доступны в приложении. Или, если перефразировать, для любых действий, которые доступны в приложении (просмотр, поиск, регистрация), есть методы модели, которые их выполняют.
Ответы: >>946240
Аноним 2017/03/04 16:28:43  №946240 151
Ответы: >>946246 >>946250 >>946280
Аноним 2017/03/04 16:32:59  №946246 152
>>946240
Мне кажется, ты зря прямо в контроллер передаешь посты. Хотя я так понял у тебя там ларавель, может там так и надо.
Ответы: >>946249
Аноним 2017/03/04 16:38:09  №946249 153
>>946246
А ты про что именно?
Если про переменные с постами, то они для шаблонизатора, который их потом раскидывает по виду. Сами посты я получаю из модели, контроллер только отправляет их шаблонизатору.
Ответы: >>946270
Аноним 2017/03/04 16:41:11  №946250 154
>>946240
алсо, можете еще порейтить стиль кода, тоже будет кстати
Аноним 2017/03/04 17:01:43  №946270 155
>>946249
Я про вот это.
>public function __construct(Post $posts, Tag $tags, Attitude $attitude)
Я конечно не знаю что ты хочешь там вообще сделать, но по идее ты должен внутри контроллера получать из модели посты, не? А так ты выходит получаешь где-то посты, потом передаешь их в контроллер. Со стороны выглядит как грубое нарушение принципов MVC.
Ответы: >>946278 >>946308
Аноним 2017/03/04 17:04:02  №946271 156
Ответы: >>946280 >>955417
Аноним 2017/03/04 17:11:35  №946278 157
5dJD2tK2QgY.jpg (52, 741x720)
720x741
>>946270
Не, это какая-то ларавелевская хуйня, так уже было из коробки
Я так понял, она получает класс модели, чтобы создать из него объект, который присваивается свойству внутри контроллера, чтобы потом получать доступ к методам модели через это приватное свойства конструктора.
Можно в конструктор ничего не передавать, тогда в модели методы должны быть статичными, чтобы обращаться к ним без создания нового объекта из класса модели.
Ответы: >>946284 >>947742
Аноним 2017/03/04 17:12:31  №946280 158
14831331277010.jpg (35, 353x334)
334x353
Аноним 2017/03/04 17:16:34  №946284 159
sIUUC3s0XqQ.jpg (16, 447x456)
456x447
>>946278
я потом хуй забил и просто нагородил статичных методов в модели, о чем теперь жалею, потому что дошло, что надо выбирать что-то одно
Ответы: >>946286 >>946308 >>946313
Аноним 2017/03/04 17:20:29  №946286 160
>>946284
Тебе наверное надо побольше документации читать, или там советы какие в интернете ищи. Тут вроде не объявлялись знатоки ларавели.
Ответы: >>946290
Аноним 2017/03/04 17:21:31  №946290 161
>>946286
Я думал это топ фреймворх эва
Ответы: >>946293
Аноним 2017/03/04 17:26:05  №946293 162
>>946290
Топ по популярности. Но я вот например его не люблю.
Аноним 2017/03/04 17:34:34  №946301 163
Почему бы в студентах валидацию не запилить прямо в модель студента?
Ответы: >>946309
Аноним 2017/03/04 17:45:47  №946308 164
>>946270

Это кривой код, он толком сам не понимает что представляет собой объект Post и что надо передавать в контроллер. Просто где-то что-то похожее видел и бездумно написал по аналогии.

>>946284

Ты бы посмотрел, как в этом фреймворке принято делать, и делал бы аналогично.

Вот мануал по моделям в Eloquent - ты читал? https://laravel.com/docs/5.4/eloquent#introduction

Если ты не знаком с Active Record то опять же, прочти сначала теорию прежде чем писать код: https://github.com/codedokode/pasta/blob/master/db/patterns-oop.md

У тебя вообще код странный и такое ощущение что ты сам толком не понимаешь что пишешь.

В Eloquent объект Post представляет собой один пост, а для работы с таблицей постов в целом используются статические методы. Найти пост - статический метод. Изменить заголовок поста, проверить пост - обычный.

> return $this::where

Так не пишут. для вызова статических методов используют self::

Ну вот давай посмотрим на этот метод поиска поста по id:

> public function getPost($id)

Это не статический метод. Чтобы его вызвать, нам надо иметь объект класса Post, который соответствует одному посту в БД. То есть чтобы вызвать getPost (и найти пост в БД), мы должны сначала загрузить из БД объект поста. Ну бред же, как ни смотри.

Та же проблема с нестатическим методом forUser. Получается чтобы найти все посты пользователя, мы должны сначала загрузить какой-нибудь другой пост. Ну и вообще, этот метод наверно логичнее бы смотрелся в классе User. $user->findPosts(...)

> public static function getPageCount(User $user)
Неправильное название функции, она считает не число страниц, а число постов. Опять же, возможно ее логичнее в класс юзера поместить. Я не знаю, как в ларавел принято это делать.

> public function setPost($request, $post)
Почему у тебя модель работает с запросом? Это задача контроллера.

> public function countPages($request, $posts_on_page, $this_page)
Эта функция вообще непонятно, что делает в этом классе. Вот смотри, простой пример: допустим ты захочешь сделать пагинацию для еще каких-то сущностей, тебе придется скопировать в тот класс весь этот код. Очевидно, что его надо вынести в отдельный универсальный класс, а не копировать в каждую модель.

Далее, про класс Attitude. Во-первых, у него неправильное название, не Attitude, а Relation. Во-вторых, Relation тоже неправильное название, так как не говорит, связь чего с чем представляет это класс, правильно PostToTag или PostTagRelation, как-то так.

Но нужно ли писать этот класс? В документации по Eloquent написано что есть поддержка отношений многие-ко-многим: https://laravel.com/docs/5.4/eloquent-relationships#many-to-many

В общем, впечатление пока плачевное. Пока ты своим кодом показываешь что ты даже не пытался разобраться в фреймворке, который используешь, на каких принципах он построен. Ты просто пишешь код по аналогии с где-то увиденным (в видеоуроке?) не читая документацию и не понимая, что он значит. Ну и статические методы с обычными путаешь. Я бы такого кандидата отправил домой читать документацию.

Вот там был выше анон, который написал глупый комментарий вроде "зачем тратить время на написание задачи про студентов с нуля, бери фреймворк". Вот когда сразу берут фреймворк, получается такой результат.
Ответы: >>946377
Аноним 2017/03/04 17:47:45  №946309 165
>>946301

Потому, что для проверки уникальности email надо обращение к БД (через объект StudentDataGateway). В модели такого объекта нет. Также может потребоваться обращение к каким-то другим сервисам. Поэтому валидатор логично сделать внешним по отношению к модели сервисом.
Ответы: >>946334
Аноним 2017/03/04 17:58:07  №946312 166
>>946192
Я не ОП, но вот основные, на мой взгляд, проблемы:

Вызывает вопросы сама архитектура приложения, код очень плохо разделен, у тебя в одном файле смешана верстка, SQL запросы, валидация и сама логика приложения. Ты видимо не совсем понимаешь как должен выглядеть нормальный MVC проект, попробуй поискать примеров и перечитать уроки ОПа.

По стилю кода тоже возникли вопросы, у тебя имена методов и переменных написаны снейк кейсом, код оформлен не по стандартам, почитай второй пост в треде, у нас есть стандарты PSR-1 и PSR-2.

Обработка ошибок сделана неправильно, ты поставил PDO в режим исключений, но потом при запросе ты все равно почему-то делаешь проверку
https://github.com/grigoryMovchan/auth/blob/master/php/module.php#L18 Если у тебя PDO стоит в режиме исключений, этого делать не нужно, при любой ошибке БД PDO выбросит исключение, которое ты потом сможешь обработать как хочешь.

https://github.com/grigoryMovchan/auth/blob/master/php/mysql.php#L21 И тут сразу же бросается в глаза неправильная работа с исключениями. Почитай урок ОПа https://github.com/codedokode/pasta/blob/master/php/exceptions.md

>TODO: вынести валидацию формы на фронт с помощью AJAX
Это сделано очень неудачно. Мало того что у тебя в коде две разные валидации (одна обычная, другая для аякса), так ты еще хочешь оставить только аякс, чтобы у пользователей без JS совсем ничего не работало. На мой взгляд это неправильный подход. Я бы сделал отдельный класс или метод для валидации данных которые пришли, этот метод возвращал бы массив с ошибками типа ['имяПоля' => 'текст ошибки'] (или пустой массив если все хорошо). Затем использовать один и тот же метод при аяксе и при обычной отправке формы сабмитом. В случае если запрос пришел аяксом, отдаешь JSON с массивом ошибок, если при обычном сабмите формы - показываешь пользователю ту же форму с ошибками.

https://github.com/grigoryMovchan/auth/blob/master/php/module.php#L179 Не совсем понятно зачем ты используешь сессии и куки одновременно. Ты же понимаешь как работают сессии и в чем их отличие от кук?

https://github.com/grigoryMovchan/auth/blob/master/php/module.php#L120 Не работает с кириллицей, почта вида иван@пример.рф валидацию не пройдет.

Это только что бросилось в глаза при беглом просмотре, основная проблема в том что код плохо разделен и читать его трудновато.
Ответы: >>946314 >>946377
Аноним 2017/03/04 17:59:30  №946313 167
>>946284

> Attitude::getTags($post->id, 'name'))
Почему не $post->getTags()->pluck('name')->all() ? Изучи какие есть методы у коллекций: https://laravel.com/docs/5.4/collections#method-pluck

Но правильнее передавать в вью не склеенную строку, а коллекцию тегов, а оно пусть делает с ней что хочет.

Дальше, редактирование у тебя сделано в виде 2 методов:

> public function edit(Request $request, Post $post)
> public function save(Request $request, Post $post)

При таком подходе, как ты сделаешь обработку ошибок? Вот пользователь заполнил форму неправильно, мы должны показать ему эту форму и сообщение об ошибке. Но в твоем варианте с редиректами введенные в форму данные просто потеряются. Тебе надо почитать про алгоритм обработки форм: https://github.com/codedokode/pasta/blob/master/forms.md

У тебя даже валидации нет. У тебя можно отправить форму с пустыми полями.

Поиск отсутствующих/новых тегов надо было делать в модели. ты похоже не понимаешь идею MVC и кто за что отвечает. С твоим кодом, если мы захотим где-то в другом месте поменять теги поста, нам придется копипастить код из контроллера так как повторно его вызывать из другого места нельзя.

Вообще, тебе надо сделать задачу про студентов и почитать комментарии к ней (в ОП посте). Ты взялся за фреймворк, не изучив много более базовых вещей вроде валидации или работы с формами.
Ответы: >>946377
Аноним 2017/03/04 18:01:42  №946314 168
>>946312

Насчет валидации, в Юи можно прописывать правила валидации в модели и там один и тот же код обеспечивает валидацию и обычного POST-запроса и аякс-валидацию для отдельных полей. Я подозреваю, в Laravel тоже есть какое-то готовое решение для работы с формами и валидацией и надо использовать его.
Аноним 2017/03/04 18:03:35  №946315 169
>>945059 (OP)
Первый раз вижу чтобы фреймворк из коробки не работал по гайду, это я об Slim v3, всегда 404 ошибка, /hello/lorem не отрабатывает вообще, об htaccess вообще речи не идет в их официальном installation guide.
Полазив в инете единственное, что понял - популярность этого фреймворка довольно низкая, так как нет абсолютно ничего, ни рабочего примера нигде, ни гайдов нормальных, комьюнити нет совсем. Зачем на нем писать fileshare ?
Ответы: >>946317 >>946319 >>947742
Аноним 2017/03/04 18:07:01  №946317 170
>>946315
Слим это микрофреймворк, конечно у него будет ниже популярность чем у серьезных вещей вроде Symfony или Yii.

>всегда 404 ошибка, /hello/lorem не отрабатывает вообще
Это потому что у тебя на веб-сервере не настроен URL Rewrite.

>об htaccess вообще речи не идет в их официальном installation guide
Плохо искал.
https://www.slimframework.com/docs/start/web-servers.html
Ответы: >>946318
Аноним 2017/03/04 18:08:45  №946318 171
Ответы: >>946320
Аноним 2017/03/04 18:10:41  №946319 172
>>946315
Попробуй фалкон, еще захочешь.
Аноним 2017/03/04 18:11:09  №946320 173
>>946318
https://github.com/slimphp/Slim#usage
Вот же есть раздел про использование, там пример с встроенным в PHP веб-сервером (на котором URL Rewrite работает из коробки), а про другие веб сервера написано
>For more information on how to configure your web server, see the Documentation.
С ссылкой на нужный тебе раздел в документации.
Аноним 2017/03/04 18:29:27  №946334 174
>>946309
Спасибо. А как вообще делать валидацию? Тупо регулярками, или есть какие-то хитрости там, средства php для этого?
Ответы: >>947742
Аноним 2017/03/04 19:28:20  №946362 175
>>945059 (OP)
Почему у тебя Гахара на пике? Это намёк, что мы (программисты на PHP) все крабы?
Ответы: >>947742
Аноним 2017/03/04 19:48:44  №946373 176
на зло всем троллям
приятно, что пхп не тонет и не умирает как язык.
За год я овладел пхп, нодой, питоном и сейчас учу руби, но пыха всегда будет в моем сердце как что-то простое, понятное, но от этого ничуть не менее эффективное.
Аноним 2017/03/04 20:09:45  №946377 177
14831331277010.jpg (35, 353x334)
334x353
>>946308
Спасибо, очень отрезвляет, много ценных замечаний. Понял, что работу мне еще рано искать, буду дальше учиться.

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

Вот тут я не верю что есть человек который может сесть и не разбираясь что-то написать на нем. Там же свой уровень абстракции. Я месяц делал эту поделку, до нее сделал похожую на чистом MVC https://github.com/grigoryMovchan/blog_mvc Старался внимательно читать официальную документацию, видео уроки обхожу стороной. Да, месяца мало, но вот чтоб говорить что я не пытался разобраться и не читал документацию, тут у меня бомбит.

>>946312
Спасибо. Да, это не MVC, скорее просто поделка в процедурном стиле с использованием классов, чтобы потом использовать в другой поделке, которая уже будет в MVC. Поэтому сори что запутал. Про PDO ценные замечания.

>Это сделано очень неудачно. Мало того что у тебя в коде две разные валидации (одна обычная, другая для аякса), так ты еще хочешь оставить только аякс, чтобы у пользователей без JS совсем ничего не работало. Стандарты PSR-1 и PSR-2 почитаю.

Тут я косноязычно выразился. Я хотел не вместо, а дополнительно ее сделать. Про один класс для валидации ценное замечание.

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

>>946313
Спасибо. Почитаю про коллекции. Валидация там есть https://github.com/grigoryMovchan/zuihitsu/blob/master/app/Http/Controllers/PostController.php#L113-L116 но текст и правда не сохраняется, были планы этим заняться.

>Поиск отсутствующих/новых тегов надо было делать в модели. ты похоже не понимаешь идею MVC и кто за что отвечает. С твоим кодом, если мы захотим где-то в другом месте поменять теги поста, нам придется копипастить код из контроллера так как повторно его вызывать из другого места нельзя.

Тут не понял, ведь все методы для работы с тегами в моделях Attitude и Tag.

> Ты взялся за фреймворк, не изучив много более базовых вещей вроде валидации или работы с формами.
Опять я ничего не знаю. Не представляю чтобы кто-то без этих базовых представлений сходу мог написать что-то на ларавел без опыта в других фреймворках.

P.S. Еще раз спасибо, господа. Все замечания взял на заметку. Впереди предстоит объемная работа. Исправлять эту поделку на ларавел я уже не буду, но в будущем, постараюсь сделать лучше.
Ответы: >>946390 >>947723
Аноним 2017/03/04 20:31:23  №946390 178
>>946377
>Вот тут я не верю что есть человек который может сесть и не разбираясь что-то написать на нем. Там же свой уровень абстракции. Я месяц делал эту поделку,
пиздец, я уже и забыл, как сложно первое время вкатываться. код плох на уровне смешения хтмл и кода. посмешила папочка с названием пхп.
Ответы: >>946416
Аноним 2017/03/04 21:19:41  №946416 179
>>946390
Несколько минут думал как ее назвать, просто хотел хоть как-то разделить. Как обычно называют?
Аноним 2017/03/04 21:21:35  №946419 180
>>946416
Обычно называют app или src, если у тебя там скрипты твоего приложения.
Аноним 2017/03/04 21:21:47  №946421 181
>>946416
Хотя, я догадываюсь, что такой папочки быть не должно, когда есть божеcтвенный MVC
Ответы: >>946423
Аноним 2017/03/04 21:26:30  №946423 182
>>946421
В том смысле что файлы сортируются не по расширению, а по их функции
Аноним 2017/03/04 21:27:55  №946425 183
Ответы: >>946433
Аноним 2017/03/04 21:39:24  №946433 184
>>946425
public не подойдет дял когда приложения.
Ответы: >>946438
Аноним 2017/03/04 21:45:36  №946438 185
Аноним 2017/03/04 22:03:54  №946448 186
няши, а почему у меня, например, по ссылке localhost/admin/blabla грузит блабла.пхп в потом снизу нее еще догружает после футера, типа две страницы на одной и индекс для адреса localhost/admin?
в роутах:
'admin/blabla'=> 'admin/blabla',
'admin'=> 'admin/index'

это проблема роутера или htaccess?
Ответы: >>946475 >>947723
Аноним 2017/03/04 22:12:19  №946455 187
>>946077
Предлагаю топить тред сразу сажей на дно. Заметили, что активность долбоёбов критически возрастает в начале каждого треда, а далее идет на спад, после бамплимита? Если бы у нас был доступ к модератору, то можно прикрепить для новичков тред в шапку и обновлять ссылку с каждым перекатом.

А то сидит завсегдатай такой, ковыряет в носу, рефрешит - "о бля! свеженький анимешный пэхэпэ тред, зайду ка посру..."
Ответы: >>946493 >>947723
Аноним 2017/03/04 22:55:14  №946475 188
>>946448

сам разобрался.
когда проверяю на совпадения урл с роутами нужно проверть как ~^путь$~, а я забыл $
Аноним 2017/03/04 23:22:06  №946488 189
анимедауны - не люди.
Аноним 2017/03/04 23:24:43  №946490 190
Аноны, нужна помощь. Делаю свой первый сайт, вот встал вопрос насчёт корзины, можете, пожалуйста, подкинуть линк на годный гайд/видео как мне это реализовать и с помощью чего(PHP или JS, или то и то), не могу определиться, спасибо.
Ответы: >>946495
Аноним 2017/03/04 23:39:45  №946491 191
Есть ли большая разница между PHP 5 и PHP 7?можно ли читать литературу по пхп 5 информация там актуальная сейчас или нет?
Ответы: >>946492 >>947723
Аноним 2017/03/04 23:43:43  №946492 192
>>946491
Читай спокойно. Насколько я знаю список выпиленного там не очень большой и проблем особых не должно быть.
Аноним 2017/03/04 23:47:11  №946493 193
>>946455
Если ты не заметил, то /pr/ это одна из самых токсичных тематических досок на всей борде, такое поведение вполне нормально.
Ответы: >>946496 >>947723
Аноним 2017/03/04 23:48:24  №946495 194
>>946490

я для своего сделал через запись в сессию масива с товарами(айди->кол-во). Ну и можно в бд еще писать для залогиненых юзеров, тип чтоб не проебать.
Ответы: >>946497 >>946499 >>947723
Аноним 2017/03/04 23:49:04  №946496 195
14374821461150.gif (41, 400x300)
300x400
>>946493
А ты попробуй усвоить столько инфы и при этом не стать токсичным тщеславным снобом. Это мишен импосибл.
Ответы: >>946787
Аноним 2017/03/04 23:50:55  №946497 196
>>946495
мб лучше генерить уникальный код, писать его в куки и в бд, в бд хранить товары
сессии быстро умирают
Аноним 2017/03/05 00:09:38  №946499 197
>>946495
Не подкинешь инфы, если не тяжело? В PHP я полный 0, JS хоть как-то понимаю и то начал относительно недавно изучать его. Если всё это дело лучше написать будет на PHP, то буду значит разбираться. Спасибо за ответ.
Ответы: >>947712
Аноним 2017/03/05 00:23:21  №946501 198
Скорее всего наивный вопрос, но, где можно посмотреть исходник больших проектов(коммерческих желательно), чтоб узнать как там у них работают всякие функции и прочее
Ответы: >>946574 >>946625
Аноним 2017/03/05 02:44:25  №946567 199
Что быстрее выучить JS или PHP?
Ответы: >>946575
Аноним 2017/03/05 03:08:42  №946574 200
>>946501
git clone https://github.com/PrestaShop/PrestaShop.git

Этот достаточно большой и весь код соответствует PSRам, юзает инверсию зависимостей и разные современные практики.
Аноним 2017/03/05 03:11:55  №946575 201
>>946567
Php, в нем ООП стандартный и нет callback hellа. В JS без опыта в нормальном ООП языке ты увязнешь и не будет понимания в голове, что и как работает, не будет понимания паттернов, наследования, разделения ответственности. JS лучше учи после, будут отличия от нормальных языков понятны.
Ответы: >>946837
Аноним 2017/03/05 08:41:17  №946625 202
>>946501

Magento - CMS для интернет-магазинов.
Ответы: >>946643
Аноним 2017/03/05 09:39:26  №946643 203
>>946625
Она даже без товаров тормозит по минуте. Там явно говнокод на говнокоде.
Ответы: >>946646
Аноним 2017/03/05 09:52:06  №946646 204
>>946643

Но она вроде относительно популярна и даже продается.

Ты бы мог обратить проблему ("тормозит") себе на пользу - учиться на примере этой CMS оптимизации и профайлингу, выяснить источник тормозов, понять, это принципиально неустранимая вещь или просто где-то кеширование не настроено.
Аноним 2017/03/05 11:50:39  №946697 205
Я правильно понимаю, что трейт в php - аналог интерфейсов в С - языках?
Ответы: >>946706 >>946711 >>947712
Скидки Аноним 2017/03/05 11:59:20  №946704 206
>>937439
> Тут не исправлена проблема модификации переданной коллекции:
Там было исправлено, метод removeProduct возвращал новую коллекцию, потому CountDiscount исходную коллекцию не модифицировал. Мне кажется есть смысл сделать её неизменяемой, а не надеяться, что пользователь вспомнит вызвать clone (вот я как раз забыл).
Сейчас ошибки нет: https://bitbucket.org/learning_acc/discounts/src/be3e1a13fda16af5b5397c94428c4d9b25632d29/combination_discount_test.php?at=master&fileviewer=file-view-default

ProductCollection на основе SplObjectStorage: https://bitbucket.org/learning_acc/discounts/src/be3e1a13fda16af5b5397c94428c4d9b25632d29/src/Collection/ProductCollection.php?at=master&fileviewer=file-view-default

> в языках вроде Ява эта проверка делается одним тайп-хинтом вроде Map<int, DepreciationInterface>.
Ещё классы DiscountCollection и DiscountResult служат только ради тайп-хинтов.

> http://floating-point-gui.de/errors/comparison/
> if( Math.abs(a-b) < 0.00001) // wrong - don't do this
Посмотрел, PHPUnit как раз так и сравнивает, если исключить проверки is_nan и is_infinite: https://github.com/sebastianbergmann/comparator/blob/master/src/NumericComparator.php#L46
И тут так советуют: https://secure.php.net/manual/en/language.types.float.php#language.types.float.comparison
Настораживает, что функция автора статьи при epsilon 0.00001 считает, что 1000000 и 1000001 равны: http://floating-point-gui.de/errors/NearlyEqualsTest.java
Строки 46-47

Ну и конечно же, задачку было решить очень полезно, спасибо за объяснения и исправления!

Ответы: >>956741
Аноним 2017/03/05 12:08:45  №946706 207
>>946697
Трейт это инструмент для реализации множественного наследования. Чтобы ты мог два класса унаследовать от разных классов, но при этом в обеих классах реюзать один и тот же код.
Ответы: >>947712
Аноним 2017/03/05 12:24:07  №946711 208
>>946697
В PHP есть интерфейсы: https://github.com/codedokode/pasta/blob/master/php/interfaces.md

Интерфейсы и трейты - абсолютно разные вещи. Первое - это контракт, не содержащий никакой реализации. Трейты (миксины) удобны когда нужно добавить классу какое-то поведение. Например, поведение объекта, который может генерировать события и оповещать слушателей: https://learn.javascript.ru/mixins

ИМХО, по возможности стоит предпочитать внедрение зависимости трейтам, так как зависимости можно подменить, а вот трейты вбиты в класс намертво.
Ответы: >>947712
Аноним 2017/03/05 12:32:54  №946720 209
Ребята, что посоветуете почитать по Symfony 3, кроме доков на официальном сайте, ессесно?
Ответы: >>946777
Аноним 2017/03/05 13:25:22  №946764 210
14837235216680.jpg (33, 439x355)
355x439
ОП или аноны, выручайте.
Скачал книгу по PHP 7 Дмитрия Котерова (2016 год).
И в учебнике выводят на этот сайт http://windows.php.net/download
Это так называемая "установка" Php определенной версии скачал седьмую. Что она дает вообще? и нужна ли она мне на этапе изучения? так как там вообще не особо об этом расписывают
Как редактор скачал sublime text 3. Этого достаточно или еще что-то нужно?
Ответы: >>946787 >>947712
Аноним 2017/03/05 13:27:17  №946765 211
>>945059 (OP)
Посаны, а в фильтрах для uBlock пхп или нет?
Мне, короче, надо знать как в них поставить вместо символа переменнную, чтобы там был диапазон значений. То есть вот есть у меня 10 строк, которые отличаются только одной циферкой - хочу вместо 10 сделать одну. Звёздочка почему-то не работает. Может её в какие-нибудь сраные скобки надо заключить или типа того? Причём в строках, когда меняется целое... слово (наверное, хуй знает как это называется) она работает, например -
||yastatic.net/morda-logo/i/cards/8march2017/enter/
.png$image
А когда надо поменять только его часть
yandex.ru##.b-cards__enter_bg_*.b-cards__enter_8march2017.b-cards__enter
уже нет.
Ответы: >>946769 >>947701
Аноним 2017/03/05 13:30:28  №946768 212
год работал на чистом пхп люблю содомию
задумался об изучении фреймворков и смене рабочего места. На русском рынке сейчас самый популярный - симфони? просто мне больше нравится йи.
Аноним 2017/03/05 13:30:55  №946769 213
>>946765
Блять, ебучая макаба, посчитала звёздочки элементами разметки.
Первая строка должна выглядеть так - ||yastatic.net/morda-logo/i/cards/8march2017/enter/*.png$image
Аноним 2017/03/05 13:33:00  №946772 214
>>946768
На русском как раз самый популярный ЙИ. Если смотреть глобально, то наверное топ 1 по популярности - ларавел. Симфони вряд-ли где-то в топе, слишком навороченный фреймворк.
Ответы: >>947064 >>947701
Аноним 2017/03/05 13:33:26  №946774 215
>>946768
Смотришь на требования в вакансиях - учишь. Можно учить и два и три фреймворка.
Ответы: >>947064
Аноним 2017/03/05 13:37:20  №946777 216
>>946720
я вот эти туториалы читаю (платные там только видосы, текст из них продублирован внизу)
Ответы: >>946779
Аноним 2017/03/05 13:39:21  №946779 217
Ответы: >>946806
test 2017/03/05 13:44:12  №946786 218
Просто тест
Аноним 2017/03/05 13:47:59  №946787 219
>>946496
"Столько инфы" усваивают только бородачи-профессор. А на уровень тутошних знатоков можно выйти за пару лет. Просто у нас кодеры получают сравнительно дохуя, вот они себя илитой и считают. Смотрел на западных кодеров - там разница в зарплатах не такая значительная, от того эти ребята в среднем менее упоротые, и комунити там гораздо более добродушное, серьезно. Просто если почитать наши ресурсы типа хабры и доу - складывается впечатление, будто погромисты все поголовно озлобленные, чсвшные мудаки, еще и делают все возможное что бы затопить новичков потому, т.к. боятся что наплодится конкурентов и начнется демпинг зарплат, а кроме как кодить они нихуя не умеют. Даже тот же стековерфлоу как ресурс для неофитов гораздо более дружелюбный, чем бОльшая часть ру-комунити. А проблема этого ИТТ треда скорее в мочерации, точнее ее отсутствие.
>>946764
>Скачал книгу по PHP 7 Дмитрия Котерова (2016 год).
Выбрось это, лол. Котеров и Костарев это просто легенды говнокодинга. Лучше по учебнику ОПа занимайся.
Ответы: >>946792 >>946810 >>946844
Аноним 2017/03/05 13:51:52  №946792 220
>>946787
Нужно ли сразу вкатываться на фреймворки? Есть ли вообще какая-то работа на чистом пхп?
Ответы: >>946800 >>946802 >>947701
Аноним 2017/03/05 14:04:52  №946799 221
>>945059 (OP)
Может быть тут кто то шарит и может рассказать. Сложно ли выучить php для того, чтобы начать фрилансить и сложно ли это?
Ответы: >>947701
Аноним 2017/03/05 14:05:05  №946800 222
>>946792
Что значит чистый пхп? Фреймворки не на чистом пхп написаны? Фишка в том, что для того, чтобы решить более-менее определенную задачу, то тебе надо либо использовать либо фреймворк, либо cms, либо писать свой велосипед, который по сути будет таким же фреймворком. Естественно, пилить свой велосипед, когда все уже давно сделано до тебя очень глупо. Поэтому использовать фреймворк это умное решение - вопрос лишь только в том какой тебе подходит для твоей задачи.
Если под чистым пхп ты подразумеваешь работу вообще без какого-либо паттерна, архитектуры и прочего, то максимум для чего такой "чистый пхп" подходит - это написать файлик-скриптик для генерации капчи или гостевой книги. В 2017 это нафиг никому не нужно.
Аноним 2017/03/05 14:06:44  №946802 223
>>946792
>Нужно ли сразу вкатываться на фреймворки?
Лол. Это просто такой платиновый вопрос, что ОПу давно пора его жирный курсивом в ОП-посте добавить. Даже в этом треде уже было это. Поясню по хардкору - нив коем случае блять. Да, на чистом пхп чаще всего не пишут. Однако если ты хочешь именно стать разработчиком, тебе надо знать и уметь применять все принципы, которые лежат в основе пхп-фреймворков. А именно, помимо синтаксиса пхп тебе надо хорошо, именно что хорошо понимать ООП - зачем оно надо, основные фишки и плюсы которые оно дает. А так же MVC, ORM, и PSR желательно - а то увидишь, допустим, в документации фреймворка что такой-то класс реализует интерфейс из PSR-7, и начнется тупняк у тебя, пока не полезешь в гугл и не узнаешь что за PSR-7 такой. Вот когда хорошо разберешься в этом, напигешь пару MVC-бложиков, тогда уже можно и за фреймворки браться.
Аноним 2017/03/05 14:10:13  №946806 224
Аноним 2017/03/05 14:14:56  №946810 225
>>946787
Так что все-таки дает этот сайт http://windows.php.net/download
Вроде как на пхп.нет что-то важное должно быть
Я распаковал архивы и ничего полезного там не вижу как новичок
Ответы: >>946817 >>946830 >>947701
Аноним 2017/03/05 14:18:47  №946817 226
>>946810
На офсайт иди, там тебя научат.
Аноним 2017/03/05 14:25:59  №946830 227
>>946810
какая у тебя задача-то? если установить локальный сервер на винде, то есть либо openserver, либо xampp.com, либо если хочется установить самому, есть урок от ОПа в шапке.

учебник Котерова определенно надо сжечь, намного лучше учиться хотя бы по тем же урокам в шапке.
Ответы: >>946835
Аноним 2017/03/05 14:30:41  №946835 228
>>946830
>учебник Котерова определенно надо сжечь, намного лучше учиться хотя бы по тем же урокам в шапке.
Двачую. Там в предисловии указано на то, что учебник не для самых новичков, а для тех кто хотя бы поверхностно знаком с алгоритмизацией. Хотя я паскаль изучал давно и основы помню, но ничего не понимаю по его учебнику
Аноним 2017/03/05 14:30:48  №946837 229
>>946575
Хорошо, а можно ли учить параллельно это?или каша будет в голове
Ответы: >>947701
Аноним 2017/03/05 14:32:13  №946840 230
Если я хочу сделать на сайте авторизацию через соц сети через API, функцию авторизации лучше закинуть в класс пользователя, или выделить отдельный класс, который управляет пользователями?
Ответы: >>947691
Аноним 2017/03/05 14:35:07  №946844 231
>>946787
А Колисиченко "Php и MySQL"?
Аноним 2017/03/05 14:42:39  №946853 232
Есть абстрактный класс Controller, в нем метод render() (ну понятно, что там шаблон включается с переданными параметрами). Есть унаследованный от него контроллер страницы, где я вывожу <?=Student::GENDER_MALE?>. Так вот, интерпретатор говорит, не видит класса Student, хотя я использовал use для него в дочернем контроллере. Думал, так как метод родительский, то и импортированные пространства имен тоже от родителя – там прописал use ...\Student; все равно не работает, а если в шаблоне абсолютный путь (имя с неймспейсом) до класса, то все прекрасно. В чем проблема?
я так понимаю, require_once просто включает содержание файла шаблона, как будто он там и был, и следовательно у шаблона должен быть доступ к импортированным пространствам дочернего контроллера и все должно быть ОК. Где я не прав?
Ответы: >>946901 >>947123 >>947686
Аноним 2017/03/05 15:11:07  №946901 233
>>946853
У меня кстати похожий вопрос. Есть у меня класс View(), который зависимость для контроллера. Однако там только метод display который просто передает параметры и инклюдит шаблон. Что бы еще такого в эту вьюху добавить? Что обычно в фреймворках там есть? Просто не хочется пока фреймворки вообще трогать.
Ответы: >>947686
Аноним 2017/03/05 15:31:48  №946924 234
У меня в линуксе нет пхп. Как его установить? apt-get install php?
А модули как подключать, как подключить фреймворки, как запустить чтобы это всё работало на внешнем айпи или локалохосте?
Ответы: >>946925 >>946927 >>947691
Аноним 2017/03/05 15:33:28  №946925 235
>>946924
>У меня в линуксе
Сочувствую.
>нет пхп. Как его установить? ap
У ОП-а в шапке все есть.
Аноним 2017/03/05 15:35:07  №946927 236
>>946924
Как именно дистрибутив линупса?
Ответы: >>946940
Аноним 2017/03/05 15:43:44  №946938 237
Анон, как работает preg_replace? В некоторых случаях он вычленяет что-то из третьего аргумента и вставляет во второй, а в некоторых вычленяет что-то в третьем и заменяет это вторым аргументом. Когда что он делает?
Ответы: >>947680
Аноним 2017/03/05 15:44:44  №946940 238
>>946927
Убунту сервер.
Извините, я не прочитал всю шапку.
Аноним 2017/03/05 17:12:52  №946982 239
>>946768
как можно работать на чистом (!) пхп еще и год. откуда вы такие беретесь? тут с тремя яп и 10 фреймворками хуй устроишься, а они ни чистом пхп работают. ахуеть
Ответы: >>947064 >>947109
Аноним 2017/03/05 19:40:21  №947064 240
>>946772

Странно, в моем кругу общения, почему то, симфони. Спасибо.

>>946774

лучше один хорошо, чем десять плохо.

>>946982

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

Ответы: >>947069 >>947113 >>947122
Аноним 2017/03/05 19:45:03  №947069 241
>>947064
там хоть мвц или тоже код вперемешку с хтмл?
Ответы: >>947292
Аноним 2017/03/05 20:20:30  №947103 242
Ответы: >>947680
Аноним 2017/03/05 20:23:47  №947109 243
>>946982
На больших фирмах как раз выкидывают эти твои фреймворки и пишут на чистом php. Фреймворк - зависимость от разрабов фреймворка и тормоза, большим фирмам не нравится. А вот мелким как раз.
Ответы: >>947680 >>947683
Аноним 2017/03/05 20:25:54  №947113 244
>>947064
А ты богатенький? Не дороха платить 4к за простую возможность оставлять заявки?
Ответы: >>947292
Аноним 2017/03/05 20:36:48  №947122 245
>>947064
За год нормальный фреймворк не написать? Ну ты герой. Учи ООП, паттерны и SOLID принципы, это максимум за пару месяцев делается.
Ответы: >>947292
Аноним 2017/03/05 20:38:17  №947123 246
Аноним 2017/03/05 22:19:54  №947203 247
Понимаю, что не там пишу, но все же есть вероятность, что кто-то из вас юзает Linux. С чего начать изучение Linux?если я его никогда не юзал, все жизнь пользовался виндой,
Аноним 2017/03/05 22:28:07  №947206 248
>>947203
по счастливой случайности я скроллил /pr и заметил твой пост. Ну, вообще в идеале, попробуй запилить виртуалбокс и в нём эмулировать Убунту. Самая хорошая для изучения линукса. Плюс, неплохо бы комбинировать с знаием Си. Хотя там и неплохая поддержка Питона есть. Вообще-то я не помню, что именно можно спокойно компилировать из терминала в Убунте. Но вот потом с помощью "help" изучай утилиты терминала. Поиграйся с файлами. Почитай пару гайдов по Bash. Ну и пиком будет установка стороннего приложения, например шиндосовского. Особенно с помощтю Wine.
Аноним 2017/03/05 22:41:22  №947212 249
14757830840390.jpg (35, 480x425)
425x480
Аноним 2017/03/05 22:48:33  №947216 250
>>947203
Самое главное -никогда не юзай десктопный линупс. А учить его легко, учишь ls, cd и прочее по мере надобности.
Ответы: >>947219 >>947230
Аноним 2017/03/05 22:49:43  №947219 251
>>947216
Я так довольно хорошо освоился с линуксом, постоянно работая с серваками через ссх.
Аноним 2017/03/05 22:58:34  №947230 252
>>947216
>никогда не юзай десктопный линупс
Это почему? Я с 2010 юзаю генту, все ок. Оче легко создать среду для погромирования, будь то пыха, руби, да что угодно. Кресты вообще по умолчанию встроены, благодаря особенностям генты.
Ответы: >>947680
Аноним 2017/03/06 00:39:25  №947292 253
>>947069

мвц-мвц, я ж не совсем аутист. ну если только немножко

>>947113

так я летом заработал тогда, а на что тратить деньги долбоебу-домосиду? Купил книг и это. Игрулечки в печенках уже тогда засели, хавчик я тогда ограничивал, чтоб похудеть.

>>947122

А зачем? В смысле, нормальный фреймворк писать. Я сделал то, что помогло мне сократить время разработки без лишних танцев с бубном вокруг компа, чтоб было лишнее время на изучение английского языка. Теперь вот.
Ответы: >>947318
Аноним 2017/03/06 01:06:33  №947309 254
>>947203
Ставишь эмулятор vmware или virtual box, накатываешь mint linux или другой популярный дистриб, проходишь всю инсталляцию. Потом гуглишь как ставить там php, apache, виртуальные хосты, все настраивать. Гуглишь руководство по основным командам bash. Запускаешь апачу с пыхой, делаешь так чтоб сервак из винды видно было по ip. SSH еще с FTP осваиваешь до линукса из винды, cron для запуска скриптов. Можно еще какой-нибудь Docker попробовать. В принципе все, больше тебе обычно ничего не требуются при типичной разработке. Усилий не так много, за пару недель легко осваивается.
Аноним 2017/03/06 01:14:18  №947318 255
>>947292
>А зачем? В смысле, нормальный фреймворк писать.
Нормальный не значит, что там фич овердохуя, просто что нормально написан - все разделено на отвечающие за свои роли классы, везде зависимости через dependency injection, юзается наследование и соблаюдаются SOLID принципы. Зачем надо? Просто потом ты этот фреймворк уже понимать будешь и в любом новом проекте просто его заюзывать. А если нормально написан, то и код сразу везде чистый станет без проблем с расширением и поддержкой. Сейчас это тебе неочевидно, но время действительно экономится будет, особенно когда требования заказчика на ходу меняются. Если у тебя кривой плохо расширяемый фреймворк с говнокодом, то ты и дальше в нем будешь не пойми что городить, проблем будет только прибавляться с увеличением сложности проектов, а с ними и временных затрат на любые изменения.
Аноним 2017/03/06 02:35:59  №947357 256
Как заблокировать айпи или сайт для компьютера?помню, в рашке некоторые работодатели блокируют вк/ютуб(без посторонних программ)
Ответы: >>947363
Аноним 2017/03/06 03:01:31  №947363 257
>>947357
C:\Windows\System32\drivers\etc\hosts отредактируй, добавь 127.0.0.1 vk.com
Ответы: >>947390
Аноним 2017/03/06 03:13:20  №947367 258
>>945059 (OP)
Хочу быстро вкатится в погромирование, до этого писал хелло ворлды с циклами на крестах всего-лишь, и немного долбился в ассемблер с флагами там и регистрами.
Хочу на галерку, грести, хоть за копейки и погонщика за спиной, чтоб мотировал. Я в тот тред зашел?
Ответы: >>947368 >>947371 >>947405
Аноним 2017/03/06 03:14:23  №947368 259
>>947367
В тот, шапку читай и вперед.
Аноним 2017/03/06 03:16:29  №947371 260
>>947367
Мы здесь учим PHP. Твои вопросы больше для "мы вам перезвоним" тредов.
Ответы: >>947372
Аноним 2017/03/06 03:17:37  №947372 261
>>947371
Учим для галер же, чтоб потом в них работать, так что тред все равно тот.
Аноним 2017/03/06 03:41:24  №947376 262
>>945059 (OP)
У Godaddy толи цены сменились, толи меркетинговый ход с ценами. Сегодня посмотрел выставленный счёт на оплату. И получилось овер 16к рублей. Это за продление 1 домена на 12 месяцев и эконом хостинг на линуксе. Учитывая что за весь прошлый год я заплатил тыщь 6, то тут прямо таки странная картина.
Если в треде есть кто может подсказать по вопросам буду рад.
Можно ли домен перенести на нового хостера и как это сделать?
Будут ли с этим проблемы?
Как поступать с оплатой? Тоесть сейчас я плачу за продление Godaddy и не парюсь, а дальше платить новому хостеру? Как платить если у меня ещё пол года осталось и я боюсь что после того как домен закончится, его перехватят сквоттеры?
Ответы: >>947387
Аноним 2017/03/06 05:45:59  №947387 263
>>947376
Перенеси его в Ру-центр, оплатить можно в любом платёжном терминале (а тж. заранее положить на счёт X денег на N лет вперёд).
Ответы: >>947392
Аноним 2017/03/06 06:24:36  №947390 264
Аноним 2017/03/06 06:50:17  №947392 265
>>947387
А не будет конфликта? За пол года оплачено у GoDaddy за год оплачено у reg.ru?
Ответы: >>947406
Аноним 2017/03/06 08:31:38  №947405 266
>>947367
Закрывай двач -> смотри нище вакансии -> учи что написано в вакансиях

Аноним 2017/03/06 08:32:41  №947406 267
>>947392
Так ты при переносе днс-записи меняешь, лол.
Аноним 2017/03/06 09:00:32  №947411 268
Что делать, если у меня в городе вакансии пхп-жуниора выглядят как-то так?
Приглашаем на работу программиста.

Требования:

Опыт работы из 1С; РНР, MySQL, JS,HTML, CSS, Yii;

Базовые навыки системного администрирования;

Обязанности:

Написание с ноля интернет-магазинов;

Написание сайтов с ноля, внесенние изменений.

Админ.сети;

Настройка и контроль за работой ПК в офисах;

Условия Труда:

6-дневный рабочий день;

8:00−18:00.
Как найти работу?
Аноним 2017/03/06 09:01:36  №947412 269
>>947411
Ещё есть вариант с удаленной работой.
Ответы: >>947419
Аноним 2017/03/06 09:04:25  №947414 270
>>947411
>6-дневный рабочий день;
Ебанутые совсем? Пять дней пинать хуи недостаточно?
Ответы: >>947419
Аноним 2017/03/06 09:07:54  №947416 271
>>947411
Чота дохуя долгий рабдень. Плюс будешь как собачка-эникейщик бегать. У тебя только одна вакансия штоле?
Аноним 2017/03/06 09:09:04  №947419 272
>>947412
Да все тоже самое. Може попробовать фриланс за еду и опыт? Но как-то совсем страшно, тем более я так понял там везде надо CMS-ки, а я ни одной не знаю.
>>947414
Меня больше порадает набор технологий. Я раньше думал, что пхп-разработчик кодит только пхп, а судя по всему еще и жс надо знать хорошо, и верстать клево.
Ответы: >>947422
Аноним 2017/03/06 09:12:39  №947421 273
Или вот еще вакансия. Чисто интересно, кого они блять вообще ищут?
приглашает кандидатов на должность ВЕБ — ПРОГРАММИСТ

Требования:

о/р от 3 лет;
желательно высшее техническое образование;
знание языков html, php, css;
умение работать с Mysql, Apache;
навыки работы с CMSWordpress, Joomla, OpenCart (создание сайтов, настройка);
кроссбраузерная, адаптивная верстка;
умение работать с графическими редакторами (Photoshop, CorelDRAW, Illustrator);
понимание и навыки в SEO и SMM продвижении сайта;
работас Google analytics, Google AdWords;
предоставление портфолио.
Преимуществом будет:

знаниеJava Script/JQuery/AJax, ASP.NET;
навыки копирайтинга;
опыт работы с облачными платформами (WIX, WEEBLYи др.);
опыт работы с торговыми площадками (prom.uaи др.);
работа с системой Moodle;
системное мышление, опыт работы с системами мониторинга и сбора данных;
умение пользоваться поисковыми системами для нахождения решений.
Обязанности:

Обновление дизайна, верстка отдельных страниц сайта.

Разработка графических элементов, баннеров.

Использование рекламных каналов. Продвижение сайта в поисковых системах. Сопровождение сайтов на платформе WordPress.

Техническая поддержка и администрирование сайтов.

Разработка дополнительных модулей для сайтов.

Обеспечение интеграции сайтов с внешними системами (CRM, 1С, мобильные приложения).

Выполнение задач по модернизации и развитию сайтов своими силами и с помощью подрядчика.

Усовершенствовать и поддерживать ecommerce.

Просьба ВНИМАТЕЛЬНО читать требованияи присылать резюме только при соответствии ВАШИХ практических навыков указанным требованиям минимум на 80%.

конт.тел.: 067−776−38−86
Ответы: >>947423 >>947425 >>947427
Аноним 2017/03/06 09:16:01  №947422 274
>>947419
Верстать вообще не сложно. Вот как раз изучи вёрстку, хтмл сначала, может и понравится. Вкатиться во фреймворки и кмс тоже не сложно. Главное не лезть в жс с вебпаками. И обычно только в мухосрансках такие охуевшие, где нужно быть фулстеком. На фрилансе тебя никто не будет просить верстать или делать жс плюхи, для этого есть фронтотяночки
Ответы: >>947429
Аноним 2017/03/06 09:17:11  №947423 275
>>947421
Вангую что эти дауны 90% технологий вообще использовать на практике не будут, а просто так упомянули их.
Ответы: >>947429
Аноним 2017/03/06 09:19:34  №947425 276
>>947421
Это охуевшие мрази, которые не шарят и хотят всё и сразу. Можешь прийти к ним на собеседование и прямо сказать - вы охуевшие мрази, идите нахуй.
Аноним 2017/03/06 09:20:20  №947427 277
>>947421
Забыли хаскель со скалой упомянуть, лол.
Аноним 2017/03/06 09:20:25  №947429 278
>>947422
Да я то верстать кое-как умею, но без каких-либо хитростей вообще.
>>947423
Меня вот интересует, а зачем они вообще столько всего пишут в требованиях? Даже моих скилов хватает, что бы понять - вакансия говно. При том что для мидлов-сеньоров вакансии нормально у меня выглядят.
Аноним 2017/03/06 09:25:02  №947431 279
>>947411
Короче, твой путь - учишь пхп, учишь хтмл, учишь парочку фреймворков -> пишешь пару своих сайтов с пользователями, борду, чатик, магазин, набиваешь первичный опыт -> идешь на фриланс, ищешь простые типовые задачи, типа сделать несложный магаз на всяких уиихах и ларавелях -> получаешь свою копеечку и радуешься жизни. Конечно, сразу это не придет, придется хотя бы полгода хорошо все изучить, и не лениться, тратить на это все не меньше пяти часов в день, а не полчасика на туториалы и дальше в дотку. Так не пойдет. Нужно работать. А когда ты дома и тебя никто не гонит, это совсем не сложно. Все получится, няша.
Ответы: >>947444 >>947642
Аноним 2017/03/06 09:39:29  №947444 280
>>947431
Да я как-то так и думал. Щас где-то на середине студентов. Алсо поясните еще такую фишку - часто говорят, что не стоит начинать карьеру с CMSок, типа это тупиковый путь и все такое, надо искать работу на фреймворках. В чем суть? Неужели все цмс-ки дерьмо такое?
Ответы: >>947445 >>947642
Аноним 2017/03/06 09:43:45  №947445 281
>>947444
Кмски это не программирование, это говно уровня админов на винде в шаражкиных конторах, ты этим заниматься не должен.
В пидорахии вообще популярно делать сайты без программирования - берешь вордпресс, ебашишь плагины, натягиваешь на кмс.
Ответы: >>947449 >>947642
Аноним 2017/03/06 09:51:13  №947449 282
>>947445
Я смотрел вакансии с опытом >3 лет, там много работы на ЦМСках. Правда там чаще не вордпресс, а всякие мадженты. И я так понял, там они скорее занимаются разработкой плагинов.
Ответы: >>947450 >>947453
Аноним 2017/03/06 09:52:26  №947450 283
>>947449
Моей первой работой была работа на цмске. Не магента, а блядов вебасист шопскрипт, чтоб он в аду горел сука. Да, плагины хуярил.
Аноним 2017/03/06 09:57:07  №947452 284
>>914237
Этот пост почему-то удалили, поэтому ещё раз запощу.
https://github.com/kubk/students

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

> поиск по фамилии зависит от регистра букв
Этого бы не произошло, если был бы написан тест: https://github.com/kubk/students/blob/master/tests/StudentGatewayTest.php

Насчёт теста функции экранирования:
> - передаем строку с тегом и проверяем, что на выходе тега нет
> - вызываем html_entity_decode на результате и проверяем, что получилась исходная строка
> - аналогично можно проверить кавычки, а также отдельные угловые скобки, что их нет в результирующей строке
Если правильно понимаю, то второй пункт работает, только если искомая строка не будет найдена. В противном случае результат будет содержать тег b или mark, и исходную строку от такого результата не получим. В общем, сам тест: https://github.com/kubk/students/blob/master/tests/StudentTwigExtensionTest.php#L71

> тут https://github.com/kubk/students/blob/master/src/LinkGenerator.php#L54 HTML в коде, и ссылка не экранируется как положено.
> Лучше было бы использовать для HTML кода макрос твига, а генерировать в PHP только сам URL.
Теперь html в php нет https://github.com/kubk/students/blob/master/src/LinkGenerator.php#L47
, но как мне кажется, тут https://github.com/kubk/students/blob/master/templates/student-list.twig#L14+L15
какой-то низкоуровневый код в шаблоне. Ну и ссылка генерируется только в одном месте, нужен ли макрос, который будет использоваться лишь один раз?

> Насчет авторизации по паролю - лучше в куке (и в БД) хранить не пароль, а его соленый хеш. Чуть безопасней, а так у тебя пароль в открытом виде на каждый запрос шлется. И в базе лежит. Украли базу/куки - и можно идти проверять, подойдет ли этот пароль к почте, к соцсетям итд.
В базе был только хеш, а насчёт кук - да, сглупил.

> я бы назвал класс не UniqueEmail, а StudentEmailUnique, так как это ограничение работает только для одного класса - студента.
Насчёт универсального решения понятно, но вряд ли оно мне где-либо ещё пригодится, раз доктрина в симфони почти что стандарт и там уже есть UniqueEntity.

Впредь постараюсь быть внимательнее и лучше тестировать то, что отдаю на проверку.
Ответы: >>956741
Аноним 2017/03/06 09:57:46  №947453 285
>>947449
Вот тебе пример двух вакансий. Как видишь, ничего заоблачного и нет никакой еботни с кмсками.
Аноним 2017/03/06 10:00:07  №947454 286
Untitled.jpg (220, 1366x768)
768x1366
Можно ли как-нибудь в PHP интегрировать ffmpeg? Жутко заёбывает писать там руками в cmd консоли всё, одна опечаточка и радуйся если скажет "ошибка", а не закораптит исходный файл к хуям (такое было, да да я криворук ещё тот).

Вот я специально потратил вчера вечер целый, поставил себе Apache с официального сайта, PHP тоже скачал, добавил как модуль чё-то там, в общем всё работает, хелловорлд все дела (прикольно кстати, я так понял это как настоящий интернет-сервер, по IP зашел к себе с телефона, офигеть).

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

Так вот, получится ли как-то динамически из маленьких таких кусочков составлять привычную команду для консоли и запускать ее из PHP?

ИНБИФО: еще одна макак — НЕТ, "ПРОГРАММИРОВАНИЕМ" ЗАРАБАТЫВАТЬ НЕ СОБИРАЮСЬ, так что если хотите, можете гнать.
Аноним 2017/03/06 10:02:44  №947455 287
>>947454
Это и есть настоящий веб-сервер.
Да, в пхп есть shell_exec для отправки команд в консоль или как-то похоже называется.

Ответы: >>947467
Аноним 2017/03/06 10:04:47  №947458 288
Ответы: >>947467 >>947612
Аноним 2017/03/06 10:05:35  №947460 289
Я тут замечаю, что все поголовно ставят апач.
Мой вопрос - зачем, когда есть божественный nginx? Его даже развернуть проще намного, чем монструозный апач.
Ответы: >>947463 >>947467 >>947612
Аноним 2017/03/06 10:09:31  №947463 290
>>947460
Наследие социализма
Аноним 2017/03/06 10:19:01  №947466 291
с.jpg (82, 859x335)
335x859
Реально сделать за две недели? Задание на пхп-стажера, 15к.
Мимо-вкатывальщик из фронт-енд тредов, до этого верстал и учил JS. За вчера сделал вроде бы на Zend вывод и хранение альбомов, но как делать 4-5 пункт пока неебу совершенно.
Аноним 2017/03/06 10:21:28  №947467 292
>>947458
На вскидку выглядит очень сложно. (Ну то есть из примера Basic usage я не понял ничего).
>>947455
>$cmd = "ffmpeg -codecs 2>&1";
>print shell_exec($cmd);

выводит ошибку:
>'ffmpeg' is not recognized as an internal or external command, operable program or batch file.

хотя уже давно добавил ffmpeg в PATH и запускаю из любой локации, очевидно для PHP другие правила, нужно где-то зарегистрировать путь к экзешнику? Винда 7 если что.

>>947460
Не знаю, с этим апачем довольно быстро разобрался. А чем именно отличается для тебя nginx? Советуешь на него поменяться?
Ответы: >>947470 >>947482 >>947642
Аноним 2017/03/06 10:24:47  №947468 293
>>947466
Купи инстанс с центосью и накати энжинкс, в чем проблема? Деплоить не могешь штоле? Обычные линуксы же.
Правда не ебу, что такое php-fpm, но гугл подсказывает что это кэширующий сервер, так что поебешься с часок и настроишь из мануалов, ничего сверхъестественного.
Ответы: >>947469 >>947612
Аноним 2017/03/06 10:25:36  №947469 294
>>947466
Это задание нихуя не на стажера. В зависимости от качества реализации на джуна/мидла. Стажеры поидее вообще беспомощные и нихуя сделать не могут. В любом случае не на 15к уж точно.
>>947468
>Правда не ебу, что такое php-fpm, но гугл подсказывает что это кэширующий сервер
Это менеджер процессов пхп.
Аноним 2017/03/06 10:25:58  №947470 295
>>947467
Попробуй питон. Там это вообще изи делается.
Ответы: >>947478 >>947642
Аноним 2017/03/06 10:36:42  №947478 296
>>947470
А что с графической частью?
HTML и CSS каждый школьник уже знает, и любую информацию найти легко. Да и нет у меня цели учить какой-то ёба язык. Мне нужно с нуля за пару вечеров то что я хочу получить, и с PHP это симс риал.
Ответы: >>947483
Аноним 2017/03/06 10:41:22  №947482 297
>>947467
С абсолютным путем все работает. Всем спасибо за ответы!
Ответы: >>947484
Аноним 2017/03/06 10:43:36  №947483 298
>>947478
Так ты делаешь свой локальный сайтек или что? На питоне можно в пару строк поднять фласк-сайтик и тыкать через него биндинги в ffmpeg-консоль.
Или тебе нужна консольная приблуда без гуев? Тогда на питоне еще проще и любой школьник сможет написать.
Ответы: >>947497
Аноним 2017/03/06 10:43:55  №947484 299
Аноним 2017/03/06 10:57:08  №947492 300
>>947466
Достаточно простенькое. В зенде ебашишь контроллер, вьюхи и редирект на урл, потом чтение из бд и вывод. Настройка nginx c php-fpm в гугле везде описана, тоже ничего сложного. За 2 недели управишься.
Аноним 2017/03/06 11:12:30  №947497 301
>>947483
Поясню окончательно:
>тебе нужна консольная приблуда без гуев?
я сам заебался в cmd писать все руками, от консоли тошнит уже
>На питоне можно в пару строк поднять фласк-сайтик и тыкать через него биндинги
Если эти биндинги можно динамически составлять, и весь процесс вкатывания и написания подобного займет не более двух вечеров, и есть хоть одна причина почему это будет лучше PHP, то я хочу быть твоим падаваном, мастер.
(а то я вчера задумался, а сегодня уже реализую на PHP первые фичи, и если мне придется начинать заново и ебать очко змеей еще неделю... а нахуя оно мне вообще?)
>ты делаешь свой локальный сайтек или что?
хочу так: приду я на работу, и в свободное время прямо с телефона зайду, щелкну пару кнопочек, найду нужные фреймы в видео, обрежу, склею, оно сохранится у меня на компе там где я хочу! Быстро. Дешево. Охуенно.
Ответы: >>947499 >>947502
Аноним 2017/03/06 11:17:00  №947499 302
>>947497
Ип на домашней машине белый? А то ниоткуда ты свою радость не увидишь.
Ответы: >>947501
Аноним 2017/03/06 11:18:09  №947500 303
Ответы: >>947513
Аноним 2017/03/06 11:21:12  №947501 304
>>947499
> >>947454 по IP зашел к себе с телефона, офигеть
утром включил, посмотрел IP, у меня не меняется до конца сессии, так что пока всё нормально с этим.
Ответы: >>947642
Аноним 2017/03/06 11:24:17  №947502 305
>>947497
>найду нужные фреймы
Вот тут не знаю. Ты собрался вываливать все видео на сайт или как ты вообще представляешь находить нужные кадры?
Ну вообще задачи похоже можно даже через телеграм-бота забиндить.

Архитектура же простая - парсить человеческие команды и преобразовывать их в понятную ffmpeg-командную строку.

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

https://gist.github.com/anonymous/a9f7376d140e82ab1cc85ac90c812f96
Ответы: >>947512
Аноним 2017/03/06 11:44:43  №947512 306
>>947502
Поясни, как это всё работает у тебя?

>Ты собрался вываливать все видео на сайт
ну наверное 2 пути:
1) выбираю файл
2) конвертирую в webm с низким качеством
3) через HTML5 <video> смотрю, отмечаю (на бумажке) нужные секунды
или:
1) выбираю файл
2) тут придется подшаманить, сделать виджет который позволит конкретный фрейм в виде картинки рипать, то есть как бы все в браузере просчитывается, а потом одна команда отправляется которая покажет где ты сейчас, на каком фрейме. А дальше режу по этим координатам.

Нужно пробовать.
Ответы: >>947519
Аноним 2017/03/06 11:53:11  №947513 307
>>947500
Бамп вопросу. Подскажите, пожалуйста, застрял на этой хуйне.
Ответы: >>947515 >>947612
Аноним 2017/03/06 11:54:27  №947515 308
blob (13, 317x249)
249x317
Ответы: >>947518 >>947523 >>947612
Аноним 2017/03/06 11:55:26  №947518 309
>>947515
Только там параметры лишку напередавал, но тесты пройдет, похуй.
Аноним 2017/03/06 11:58:30  №947519 310
>>947512
>Поясни, как это всё работает у тебя?
Говноскрипт?
Подключаю либы, телеграм-бота.
Функция Camera() - делает скриншот, посылая прямую команду в ос через os.system(), на всякий случай обрабатываю возможные ошибки, т.к. если попытаться сохранить через ffmpeg c этим же именем, вылезет бесконечный цикл ффмпега, поэтому предыдущий файл нужно удалить.
def echo(bot, update): - стандартная функция обработки сообщений телеграма.
if update.message.text == "screenshot' - проверяю текст, если сообщение содержит в себе нужный текст то далее выполняется функция Camera, которая сохраняет скриншот на диске, затем bot.sendPhoto - отправляю скриншот в телеграм. Можно также отправить видео, документы, что угодно.
def main():- тут думать не надо, стандартный обработчик бота, который будет крутиться в фоне и обрабатывать входящие сообщения.

Первый путь легко реализовать через sendVideo, отправляешь видео, смотришь, затем пишешь боту что тебе нужно и он выполняет любую команду.
Насчет второго пути и быстродействия ffmpeg не знаю, по сути разбить на картинки и выбирать из них удаленно может быть даже медленней чем залить и смотреть тупо видеофайл на странице.
Ответы: >>947528
Аноним 2017/03/06 12:01:27  №947523 311
>>947515
Огромное спасибо, правда я нихуя не понял, пойду читать про генераторы.
Аноним 2017/03/06 12:11:36  №947528 312
>>947519
Вот статья: https://habrahabr.ru/sandbox/80371/
>Литература
>Курсы обучения за деньги
>Бесплатные курсы
>Через месяц, я смогу написать первое приложение
Ну ты понял.


>Насчет второго пути и быстродействия ffmpeg не знаю, по сути разбить на картинки и выбирать из них удаленно может быть даже медленней чем залить и смотреть тупо видеофайл на странице.

Нет, ты не понял, я уже знаю какой фрейм мне нужен (например начинаем с ss 00:00:00.000), поэтому только его присылаю в виде "картинка + тайминг", а дальше средствами PHP делаю определенный шаг назад или вперед, получаю другой фрейм. Так пока не подберется идеальный. В принципе я и сейчас так примерно делаю, только в Free Video Editor, только он сук работает не так как надо, я там смотрю только тайминги и потом руками через консоль вырезаю и т.п.
Ответы: >>947535 >>947539
Аноним 2017/03/06 12:21:50  №947535 313
>>947528
>Вот статья:
К чему это?
> я уже знаю какой фрейм мне нужен
Ну ок, отправляешь картинки определенного тайминга боту.
Для более сложной обработки сообщений тебе нужно будет выучить только строки и регулярочки, чтобы вычленять оттуда логические цепочки типа "обрежь от и до", "сделай главной вторую дорожку" и т.д. Это совсем не сложно и будет быстрее, чем писать целый сайт на пхп и в итоге заниматься тем же самым биндингом команд.

Просто бери, разбирайся, делай, в чем проблема вообще. Все предельно ясно.

Ответы: >>947539
Аноним 2017/03/06 12:35:20  №947539 314
>>947535
>>947528

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

Питон не то что бы сложнее, но вся информация по Питону в основном на английском, а по PHP например в ОП посте и в интернете куча информации на русском.

>>947454

Можно, но это в общем не очень праивльный подход, по нескольким причинам.

Во-первых, уже есть куча видеоредакторов, в которые вложено множество труда. Вряд ли ты в краткие сроки сможешь сделать что-то сопоставимое. Эффективнее будет сделать поискать разные варианты.

Даже если тебе надо просто перекодировать файл - есть куча оберток над ffmpeg, в том числе open source и бесплатные.

Наконец, если делать самому, то на мой взгляд архитектура получается неэффективная. Ты предлагаешь ради GUI поднять веб-сервер и гонять запросы из браузера, чтобы этот сервер что-то делал с видеофайлом. Это очень неэффективно, тут явно нужно десктопное приложение, без всяких серверов. Но его написание это конечно намного более сложная задача чем вызвать ffmpeg. Если под винду то удобнее всего писать на C# и .NET. Есть еще варинант писать HTML/CSS/JS приложение и упаковать его в десктопное приложение с помощью Electron, но не уверен что это все эффективно и надежно будет работать.

Ну а телеграм приплетать сюда еще неэффективнее, он вообще тут никак не подходит.

В общем мой совет - найти нормальный готовый видеоредактор.
Ответы: >>947560
Аноним 2017/03/06 12:37:51  №947541 315
У меня вопрос по архитектуре веб-приложений.

Вот живой пример: сайт, на котором размещена таблица. Каждую ячейку в ней можно редактировать прямо на странице. Нажимать кнопки, выбирать радиобаттоны и всё такое. При этом на странице (без перезагрузки) происходят какие-то изменения.
Технически я сейчас это реализовал так:
- На странице ловится событие (например, onclick или onchange) по которому срабатывает жабаскрипт.
- Он собирает введённые данные (id элемента, value инпута и т.п.) и передаёт их через аякс в пхп-скрипт.
- Этот скрипт - отдельный файл, например url:"refresh_cell.php", . В нём первым делом из $_POST извлекаются переменные и по ним что-то там обсчитывается.
- Причём, большей частью в функциях, которые записаны где-то в другом файле (у меня они сведены в один function.php).
- В итоге, пхп-скрипт выдаёт сгенерированную разметку через echo.
- Он завершается, и в js через аякс возвращается эта выдача success: function (data) {.
- Ну и дальше эта data куда-то встраивается на странице.

Это так и должно быть, или я набыдлокодил слишком много костылей?
Как быть, если нужно извлечь не один кусок данных, а несколько? Например, при изменении одной из трёх ячеек, обновить в БД не только её саму, но и их сумму в четвёртой?
Ответы: >>947545 >>947550
Аноним 2017/03/06 12:46:42  №947545 316
>>947541
В целом все правильно. Конкретно архитектура на фронте и беке вызывает много сомнений, типа почему у тебя там не мвс, а какойто дикий файлик с функциями, но это ты с опытом нагородишь. Сам процесс верно протекает. Ну а для того, чтобы решить твой вопрос просто дописывай и на фронт и на бек необходимый функционал.
Ответы: >>947593
Аноним 2017/03/06 12:54:36  №947550 317
>>947541

Вообще, я бы конечно разделял это на компоненты. У тебя все перемешано в кучу и намертво связано. Я бы сделал отдельно на яваскрипте виджет таблицы, который генерирует события изменения. Отдельно бы код, который подписывается на эти события и отправляет данные на сервер. Отдельно на сервере код, который их принимает и сохраняет в БД. Там отдельно модели и контроллеры.

С сервера удобнее присылать не HTML, а JSON, а то непонятно как сообщать об ошибках например.

> Как быть, если нужно извлечь не один кусок данных, а несколько? Например, при изменении одной из трёх ячеек, обновить в БД не только её саму, но и их сумму в четвёртой?
Реши, где будут делаться изменения. Если на сервере - то пусть тот присылает содержимое не одной, а всех изменившихся ячеек, если на клиенте - пусть см их пересчитывает.
Ответы: >>947593
Аноним 2017/03/06 13:10:58  №947560 318
>>947539
Он хочет это делать удаленно с работы
Аноним 2017/03/06 13:54:39  №947593 319
>>947545
>почему у тебя там не мвс, а какойто дикий файлик с функциями
Я пока не умею в паттерны. Почитал про MVC, офигел от того, что большинство объясняющих даже не могут внятно объяснить, что такое "модель" и в основном срутся по этому поводу друг с другом. А когда попробовал разобраться, получилось какое-то описание идеального программирования в стране эльфов. Типа вот волшебный идеальный пользователь, который волшебным идеальным способом контактирует через волшебного обозревателя с волшебными данными. А на деле получается что-то вроде "модель - это данные на сервере, но на самом деле в 2017 году это уже не совсем данные, а данные, плюс логика работы с ними, поэтому все серверные скрипты - это тоже данные, но только модель, правда собирать их в одну модель некорректно, потому что тогда контроллер размазывается между клиентом и сервером, а это а-та-та и ой-ёй-ёй, поэтому вот тут мы нарисуем стрелочку, этот блок на рисунке расположим чуть ближе - и теперь всё в порядке. Данные, которые не модель, видятся контроллером через вид, затрагиваемый моделью контроллера пользователя. Модель. Данные."

Пока что для себя я сделал вывод, что вид страницы настраивается только через css и рулится чере id и классы элементов, а активность пользователя отслеживается только через js. Данные лежат только в БД и все операции с ними проходят только на стороне сервера.

>просто дописывай и на фронт и на бек необходимый функционал
>С сервера удобнее присылать не HTML, а JSON, а то непонятно как сообщать об ошибках например.
Тоже о нём думал, не хотел с ним морочиться, но видно придётся.

>>947550
>Если на сервере - то пусть тот присылает содержимое не одной, а всех изменившихся ячеек
Вот как раз этого и хочу избежать.

>Я бы сделал отдельно на яваскрипте виджет таблицы, который генерирует события изменения.
А чем стандартные onchange и onclick не устраивают?
Ответы: >>947603 >>947612 >>947642
Аноним 2017/03/06 14:02:56  №947603 320
>>947593
Ты читал про классическое мвс, раз там обсервер фигурирует. В связи со спецификой бекенда обсервер между вьюхой и моделью быть в принципе не может.
Тут значит схема такая.
Модель - данные и логика работы с этими данными. Самый распространенный пример, который тебе в большинстве фреймворков встретистя - одна модель на одну сущность в бд.
Вьюха - в данном конкретном контексте просто создает статичный хтмл.
Контроллер - это в принципе центральная точка работы всего этого говна. Запрос с браузера маршрутизуется приложением так, что в конечном счете он приходит на какой-то контроллер. Контроллер его обрабатывает, вызывает методы моделей, какие требуется. В конечном счете контроллер какие-то данные отдает вьюхе, чтобы та отредерилась. И после этого статичный хтмл, полученный с вьюхи, отдается клиенту обратно.
Ну вот такая сама стандартная схемка в двух словах.
Аноним 2017/03/06 14:27:44  №947612 321
>>947593

Почитай еще мой урок про MVC тогда https://github.com/codedokode/pasta/blob/master/js/minesweeper-mvc.md

>>Я бы сделал отдельно на яваскрипте виджет таблицы, который генерирует события изменения.
> А чем стандартные onchange и onclick не устраивают?
Может в твоей ситуации они и подойдут, так трудно сказать.

>>947515

Переусложнено. Во-первых, это элементарно решается без генераторов, кода будет намного меньше. Во-вторых, тут: return function(start, step) - не должно быть аргументов. В третьих, вместо 2 yield можно использовать один.

То есть тебе стоит разобраться в теории, в каких именно ситуациях стоит использовать генераторы.

>>947513

Ты замыкания знаешь? Если нет, изучи в learn.javascript.ru. Ты создаешь функцию, а переменную-счетчик располагаешь снаружи от нее, таким образом, что эта функция может увеличивать ее при каждом вызове.

>>947468

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

php-fpm это менеджер процессов PHP и FCGI сервер, с твоим гуглом какие-то проблемы.

>>947466

Если ZF знаешь, то делать недолго, несколько дней максимум.

>>947460

Апач проще наверно. В случае нгинкса надо отдельно поднимать и настраивать php-fpm, а с апачем не нужно. Хотя конечно в плане конфигурации нгинкс современней, логичнее и удобнее. Но возни-то больше получается, особенно начинающему.

Ну и кстати у нгинкса полезных модулей меньше. Например, у него нет модуля, который умеет в отдаваемой странице заменять что-то по регулярке (тот модуль от китайцев, что есть, убогий и малопригодный).

Ты случайно не из тех, кто считает что новая модная технология X всегда лучше чем старая Y? Нгинкс ориентирован на производительность, а Апач на число фич и модулей.

>>947458

Что за термины? "биндить"? Bind значит привязывать, и смысл твоего предложения понять трудно.

И не надо вкидывать ссылки на вещи, которые ты берешь из гугла, не разобравшись. Гуглить любой может. А ты расскажи про свой опыт и подводные камни.

Ответы: >>947617 >>947635
Аноним 2017/03/06 14:40:29  №947617 322
blob (8, 311x197)
197x311
>>947612
>То есть тебе стоит разобраться в теории, в каких именно ситуациях стоит использовать генераторы.
Типа такого? А вообще я не жсер, увидел что там генераторы просят, полез юзать генераторы.
Ответы: >>947768
Аноним 2017/03/06 14:56:39  №947627 323
Ребят, а можете подсказать какой нибудь литературы по зенду для новичка?
Ответы: >>947768
Аноним 2017/03/06 15:03:07  №947635 324
>>947612
>Апач проще наверно
Мне он напротив перегруженным кажется. Кому как. А вот энжинкс прост и прозрачен для меня, работаю с ним и прямо душа радуется. С пхпфпм так же сложностей не имею. Все это даже на винде легко разворачивается (в несколько урезанном виде) для быстрой разработки.
>Ты случайно не из тех, кто считает что новая модная технология X всегда лучше чем старая Y?
Нет, дело не в новом. Да и о чем новом может идти речь, если для меня энжинкс и апач на первой же работе в связке попались
>Нгинкс ориентирован на производительность, а Апач на число фич и модулей.
Мне приятно осознавать, что он быстр, это тоже плюсом идет.
Ответы: >>947768
Аноним 2017/03/06 15:14:30  №947642 325
>>947593

Ой, не ту ссылку про MVC дал, вот правильная: https://github.com/codedokode/pasta/blob/master/arch/mvc.md

>>947501

даже если Ip меняется, эта проблема решается с помощью Dynamic DNS - ты ставишь себе на компьютер программку и она автоматически обновляет DNS-запись. Есть бесплатные сервисы.

Проблема будет для тех, кто сидит за NAT (большинство пользователей интернета по кабелю). Там надо покупать белый IP у провайдера.

>>947470

PHP ничем не сложнее.

>>947467

Правила у PHP такие же, просто после изменения PATH в панели управления надо перезагрузить компьютер чтобы службы получили новые переменные окружения. Это кстати не проблема винды, в линуксе наверно так же.

>>947445

Откуда столько негатива? Не все готовы заказывать разработку с нуля, кто-то хочет взять готовое решение и сконфигурировать под свои цели, верстку натянуть. Что плохого?

Это во всем мире так делают.

Хотя конечно программистам лучше от этого подальше держаться.

>>947444

CMS рассчитаны на создание сайта с минимумом программировния. То есть это не для программистов, а для верстальщиков, админов, контент-менеджеров и эникейщиков.

>>947431

Зачем сомнительные задания с фриланса и конкуренция за еду? Это для тех, кто учиться не любит или не способен, а хочет поскорее зарабатывать. Я вижу другой вариант: в нашем треде всерьез изучить ООП, MVC, фреймворки вроде Симфони, тестирование, с таким набором знаний анон будет выглядеть лучше 90% вкатывальщиков, учившихся по видеокурсам, и его возьмут в любую нормальную компанию стажером.

Ответы: >>949921
Аноним 2017/03/06 16:09:07  №947680 326
>>947203

С виртуальной машины и дебиана (потому что меньше всего места занимает в сравнении с другими дистрибутивами). Есть кое-какие инструкции: https://gist.github.com/codedokode/420c8c12a1edae25f0ec

>>947230

> Кресты вообще по умолчанию встроены, благодаря особенностям генты.
Анон оптимист, во всем видит хорошее (для тех, кто не понял шутки - компоненты генту распространяются в виде исходных кодов и их надо скомпилировать, чтобы установить).

>>947109

Не все проекты такие нагруженные, чтобы нужна была кастомизация. На небольших проектах проще воткнуть кеширование.

Ну и тот же гитхаб, он вообще на Руби (и рельсах по моему: https://github.com/showcases/projects-that-power-github ) написан, не самый быстрый язык, но они просто наставили серверов побольше, где-то что-то подкрутили и проблема тормозов решилась. Хорошо, когда есть инвесторы и много денег!

>>947103

Без DIR, если ты пишешь относительный путь вроде

require 'something.php';

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

"у меня работает" - это вообще ничего не значит. Сегодня работает, а завтра нет. Надо смотреть документацию.

>>946938

Открой документацию: http://php.net/manual/ru/function.preg-replace.php

preg_replace находит все фрагменты текста, соответствующие регулярке (первому аргументу) и заменяет их на второй аргумент. При этом при замене можно использовать подстановки из исходного текста вида $0, $1 и тд.

Аноним 2017/03/06 16:11:01  №947683 327
>>947109
В таких случаях все равно пишут корпоративную хуйню. Или же можно использовать микро-фрейморвки тпа FT, какие у них могут быть тормоза?
Ответы: >>947768
Аноним 2017/03/06 16:12:15  №947686 328
>>946853

use работает только в пределах файла и не распространяется на файлы, которые ты вызываешь из него.

В use по моему нельзя использовать две точки, это не имя папки.

> я так понимаю, require_once просто включает содержание файла шаблона
Где это написано? require это что-то вроде вызова функции, выполнить код из указанного файла. Только в отличие от вызова функции, вызванный файл видит те же переменные, что и родительский.

>>946901

Не надо ничего специально добавлять, если тебя так все устраивает.


Аноним 2017/03/06 16:18:13  №947691 329
>>946924

Скорее

apt-get install php5 или как там этот пакет называется. Ну и расширения надо ставить отдельно, вроде php5-gd или php5-curl.

Модули ставятся через apt-get и обычно настраивать их не надо, но если что, конфиги в /etc/php/ есть.

Вот инфа на англ для старой убунты: https://www.digitalocean.com/community/tutorials/how-to-change-your-php-settings-on-ubuntu-14-04

> как подключить фреймворки
Как написано в документации к ним, скорее всего через composer, независимо от операционной системы.

> как запустить чтобы это всё работало на внешнем айпи или локалохосте?
Если линукс твоя основная система, то тебе нужно еще Апач или нгинкс, в качестве веб-сервера, который будет принимать запросы от браузера. Ставится опять же через ept-get install, конфиги в /etc/ как всегда, логи в /var/log/

В браузере вводишь http://localhost/, если хочется использовать свое доменное имя вроде example.local, пропиши его в /etc/hosts

>>946840

Надо делать отдельный класс, и может, не один. Потому что там довольно сложная схема с генерацией ссылок, обработкой ответов итд. Посмотри на сущестующие библиотеки для авторизации через соцсети и увидишь что там все не просто: https://packagist.org/search/?search_query%5Bquery%5D=auth

Аноним 2017/03/06 16:20:08  №947695 330
1.png (32, 233x560)
560x233
Объясните кое-что, пожалуйста. Вот есть массив объектов. Как получить доступ к свойству объекта? Гугл не помог.
Ответы: >>947704 >>947730 >>947733
Аноним 2017/03/06 16:26:30  №947701 331
>>946837

Можно, и даже полезно, чтобы сравнить разные подходы.

>>946810

Урок по установке PHP читал? https://github.com/codedokode/pasta/blob/master/soft/php-install.md

Там либо инсталлятор, либо архив с файлами, которые надо распаковать и прописать в PATH.

В ОП посте еще есть урок по командной строке и Апачу, тоже пригодятся.

>>946799

PHP выучить не очень сложно, но фрилансер ведь не будет писать абстрактные программы на чистом PHP. Тебе надо знать верстку, может CMS, может фреймворки, ООП, MVC, базы данных и при всем этом конкурировать с толпой людей. Зайди на фл.ру и сам почитай какие там задачи.

>>946792

Есть, но плохая. Сразу не получится, надо сначала ООП, DI, MVC и некоторые паттерны изучить. В ОП посте есть задача на студентов, почитай комментарии к ней, а это ведь задача без фреймворков, а сколько всего надо учитывать.

>>946772

Я про ларавел много чего слышу, но не вижу его ни в вкансиях, ни в задачах на фрилансе. У него по моему пиара больше чем случаев использования.

Хотя изучить можно, вредно не будет.

>>946768

Симфони самый сложный.

>>946765

Нет. Там свой синтаксис. Наверняка есть документация где-то.

Аноним 2017/03/06 16:27:10  №947704 332
>>947695
$array[0][$someClass]->someProperty; как-то так вроде.
Ответы: >>947707 >>947711
Аноним 2017/03/06 16:29:33  №947707 333
>>947704
Помоему просто $array[0]->someProperty
Ответы: >>947711
Аноним 2017/03/06 16:31:12  №947710 334
Гайс, есть некая идея(но рассказывать офк не буду). В общем, суть заработка: 2 чела скидывают в общак, победитель забирает 80% от всей суммы, а 20% нам. Что вообще нужно знать и иметь для такого перевода?
Аноним 2017/03/06 16:31:56  №947711 335
>>947707
Undefined variable, бла-бла. Не получается.

>>947704
Так тоже.
Ответы: >>947715 >>947716
Аноним 2017/03/06 16:32:32  №947712 336
>>946764

Компьютер и ОС Windows не понимают язык PHP и не могут выполнить твою программу. Тебе надо скачать интерпретатор PHP и запускать его, чтобы он выполнил твою программу, которую ты написал.

То есть ты запускаешь этот интерпретатор, указываешь имя файла с программой, а он уже читает твой PHP код и выполняет (интепретирует) записанные в нем команды.

Урок https://github.com/codedokode/pasta/blob/master/soft/php-install.md

>>946711

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

>>946706

Множественное наследование это странная и неоднозначная вещь.

>>946697

Трейт это трейт.

>>946499

Какую инфу ты ждешь? В ОП посте есть инфа по PHP в общем, или тебе надо, чтобы тебе корзину написали?

Ответы: >>947719 >>947720
Аноним 2017/03/06 16:33:48  №947715 337
>>947711
Может у тебя там протектед или прайват свойства?
Ответы: >>947717
Аноним 2017/03/06 16:34:05  №947716 338
>>947711
У тебя там свойства protected, не?
Ответы: >>947717
Аноним 2017/03/06 16:34:27  №947717 339
Ответы: >>947718 >>947730 >>947733
Аноним 2017/03/06 16:35:39  №947718 340
>>947717
Скинь код полностью.
Ответы: >>948531
Аноним 2017/03/06 16:36:09  №947719 341
>>947712
>Вообще, мало где они полезны
Я их время от времени юзаю для реализации поведений. Конечно так, чтобы конфликтов не было. дешево и сердито, скажем так. Нормальные поведения заходят лучше, но не всегда стоят того, чтобы их пилить попросту.
Аноним 2017/03/06 16:40:31  №947720 342
>>947712
>Множественное наследование это странная и неоднозначная вещь.
Если везде(вроде как) применяется принцип единственной обязанности, то зачем надо множественное наследование?
Аноним 2017/03/06 16:45:50  №947723 343
>>946495

Сессии быстро умирают, зашел на сайт через час, а товаров нет.

>>946493

Да, анонимность дает возможность всяким неприятным людям высказать то, что они не могут высказать ИРЛ.

>>946491

В мануале есть страница, даже на русском: http://php.net/manual/ru/migration70.new-features.php

Читать можно, но потом прочти что нового. Так-то PHP5 код будет работать в PHP7.

>>946455

На доброчане хорошо сделано, там вроде ОП может выпиливать любые посты, которые ему не нравятся.

>>946448

Мы не видели твой код, скорее всего в нем где-то ошибка. htacess тут не при чем скорее всего.

>>946416

src - исходники
Можно еще по названию приложения, например StudentList

>>946377

Ну может я ошибся насчет того что ты не читал документацию, но вот с моделями ты явно не разобрался. Прочти мой урок по паттернам работы с БД, прочти документацию ларавель по моделям и коллекциям, и я думаю, ты сам увидишь свои ошибки. А если что-то остается непонятным - спрашивай. Тут важно понять именно принципы, что куда надо добавлять, кто за что отвечает и тд.

> Да, это не MVC, скорее просто поделка в процедурном стиле
А MVC не требует наличия ООП кстати. Это независимые вещи.

> Тут я косноязычно выразился. Я хотел не вместо, а дополнительно ее сделать. Про один класс для валидации ценное замечание.
В ларавель есть своя валидация, тебе надо просто разобраться, как ее приспособить для твоей задачи.

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

>>Поиск отсутствующих/новых тегов надо было делать в модели. ты похоже не понимаешь идею MVC и кто за что отвечает. С твоим кодом, если мы захотим где-то в другом месте поменять теги поста, нам придется копипастить код из контроллера так как повторно его вызывать из другого места нельзя.

> Тут не понял, ведь все методы для работы с тегами в моделях Attitude и Tag.

Вот у тебя код в контроллере: https://github.com/grigoryMovchan/zuihitsu/blob/master/app/Http/Controllers/PostController.php#L270

Он анализирует список тегов, ищем те, что надо добавить, те, что удалить. Так как он в контроллере, то есть нельзя исплоьзовать повторно в другом месте.

И посмотри мой урок по MVC: https://github.com/codedokode/pasta/blob/master/arch/mvc.md

Я там даже дописал:

> Весь функционал приложения содержится в модели....К примеру, если мы делаем сайт объявлений, с такими функциями, как "добавить объявление", "удалить объявление", "найти объявления по критериям", то для каждого действия где-то в модели должна быть функция, которую можно вызвать. Если выкинуть все контроллеры и вью, то мы все равно можем добавлять объявления, вызывая методы модели.

То есть это определение, какие теги новые, какие надо удалить, должно быть в модели. Должна быть функция вроде "обновить теги" и уже она ищет, что надо удалить, а что добавить.

А у тебя получился толстый контроллер.

Ответы: >>947732
Аноним 2017/03/06 16:48:56  №947726 344
>>947411
>>Как найти работу?
Вон Ванечка Ерохин уже работает похрамистом, функционал на кассе тестирует, баги шваброй убирает. А все свои книжки читаешь.
Аноним 2017/03/06 16:51:33  №947730 345
Ответы: >>948531
Аноним 2017/03/06 16:51:40  №947732 346
>>947723
>В мануале есть страница, даже на русском: http://php.net/manual/ru/migration70.new-features.php
>Оператор объединения с null
>$username = $_GET['user'] ?? 'nobody';
Ух ты как удобно оказывается
Даже так можно:
>$username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';
Аноним 2017/03/06 16:51:45  №947733 347
>>947695
>>947717
У тебя прямо в массиве написано, что поля объекта протектед. Кого ты тут наебыть пытаешься? МММ?
Аноним 2017/03/06 16:58:02  №947742 348
>>946362

Просто выражение лица нравится. Какого-то тайного смысла я не закладывал.

>>946334

Есть функции вроде filter_var ( http://php.net/manual/ru/filter.examples.validation.php ) , но в общем-то да, регулярками, проверкой на заполненность, длину строки итд.

В плане архитектуры иногда делают отдельные классы-валидаторы и из них комбинируют правила валидации:

$v = new Validator;
$v->addRule('name', new NotEmptyRule());
$v->addRule('name', new MaxLengthRule(100));
..

$errors = $v->validate($data);

С этим можно заморочиться, если тебе хочется попрактиковаться в ООП, тут много интересных подвохов.

>>946315

Ты на русскомискал информацию? В приципе, не обязательно именно этот, можно Silex, тем более что он на компонентах Симфони.Можно и большой фреймворк, вроде Yii.

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

>>946278

Не, это не нужно, это просто ты не разобрался скопировал откуда-то.

>>946217

Ты уверен что проблема в приложении? Как ты проверял? Может быть в том месте, где ты получаешь результат, ты неправильно как-то его обрабатываешь?

Можешь через командную строку напрмер программой curl или wget запросить ответ с сервера, или браузером?

Ответы: >>948041
Аноним 2017/03/06 17:09:38  №947748 349
>>946173

Скопирую с прошлого треда:

>>939966
>>938135
>>938130

Почитай посты по этим ссылкам.

>>946138

Не очень понял вопрос. Уточни, что именно непонятно.

А то пока я могу только ответить, что аргументы передаются через скобки после имени функции.

>>946077

Для управленцев и депресснутых есть перезвоним-тред. зачем нам второй тред? Надо просто модерировать тред нормально.

Хорошо бы конечно банить даунов, они мешают отвечать на вопросы.

>>946038

ДА, нужно в фоновом режиме, например, по крону, собирать нужные картинки. Скрипт на странице может получать ссылку на нее либо из HTML атрибутов, либо аякс-запросом.

>>946025

Почитай документацию по гиту, git book например или мануал. Это URL репозитория,а не адреса для входа через ssh.

https://git-scm.com/book/be/v2/Git-on-the-Server-The-Protocols (англ)
https://git-scm.com/book/ru/v1/Git-%D0%BD%D0%B0-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B5-%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB%D1%8B
https://git-scm.com/book/ru/v1/%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B-Git-%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81-%D1%83%D0%B4%D0%B0%D0%BB%D1%91%D0%BD%D0%BD%D1%8B%D0%BC%D0%B8-%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D1%8F%D0%BC%D0%B8
Аноним 2017/03/06 17:19:19  №947754 350
>>946012

1) верно
2) верно (хотя ты не учел что бордер добавляет к ширине 2 px)
3) верно
4) цвета вырвиглазные. Почему-то у тебя стоит margin-right 5px, но в задаче требуется 10, почитай, как избавиться от пробелов и вызванных ими отступов
5) верно

>>946011

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

>>946009

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

>>945979

Возьмите лучше мой MVC, он проще: https://github.com/codedokode/pasta/blob/master/arch/mvc.md


Ответы: >>947862
Аноним 2017/03/06 17:25:11  №947757 351
>>945839

> Вывести информацию о пользователе, сколько лайков поставил/получил, сколько взаимных лайков

Решено пока неэффективно, с лишними подзапросами. Это можно сделать с 2 джойнами без подзапросов. Если непонятно, как, попроси подсказку.

Но вообще, надо приучаться мыслить так:

- джойним нужные нам таблицы
- условиями ON/WHERE отсекаем ненужное
- группируем, если надо
- отсеиваем сгруппированные данные по условию HAVING
- сортируем
- отбираем нужные колонки из сгруппированных данных

В данном случае очевидно нам нужна группировка по пользователям, вопрос только что и как к ним приджойнить.

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

> Все пользователи, которые не поставили лайк юзеру 3
Опять же, решается без подзапросов одним джойном.

> Все пользователи, которые поставили лайк 1,2 но не поставили 3
И тут то же самое.


Попробуй все это сделать через джойны.
Ответы: >>955736
Аноним 2017/03/06 17:30:39  №947761 352
>>945676

Посмотрел код попапа.

https://github.com/greenTea242/MinesweeperMVC/blob/master/src/views/PopupView.js#L33
> PopupView.prototype.addButton = function(option, title) {
> if (!this._buttons) {
> throw new PopupViewException("Необходимо создать контейнер кнопок.");
> }
Вот это по моему неудачное ограничение. Обычно сначала добавляют кнопки, а только потом отображают попап, а не наоборот.

> var template = document.querySelector(".template-popup");
Тут логичнее использовать id так как шаблон может быть только один. Но это так, мелочь незначительная.

Ответы: >>947887
Аноним 2017/03/06 17:40:54  №947768 353
Аноны, кто-нибудь, выделите колобков галочкой и зарепортите их как троллинг и оффтопик, мне не позволяет, пишет, я уже жаловался.

>>947683

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

>>947635

Да я тоже против нгинкс ничего не имею. Хороший сервер, тем более что сделан нашим человеком.

>>947627

В документации вроде есть туториал, но на англ.

>>947617

Да, так, только я бы previous переместил во внутреннюю функцию.

CSS Аноним 2017/03/06 20:27:55  №947862 354
>>947754

>> 2: https://jsfiddle.net/Lq1fgjde/
> верно (хотя ты не учел что бордер добавляет к ширине 2 px)
Насколько знаю, есть 2 пути:
- вычесть эти 2 пикселя из ширины элемента. Получится width: 578px, выглядит как магическое число: https://jsfiddle.net/Lq1fgjde/1/
- выставить ширину с учётом паддингов и использовать box-sizing: border-box: https://jsfiddle.net/Lq1fgjde/2/
Оба подхода дали одинаковые результаты, какой лучше?

4: https://jsfiddle.net/zvcemf1n/1/
6: https://jsfiddle.net/ba2qgzt6/1/

Вывод списка смежности в виде дерева без рекурсии: https://jsfiddle.net/wkL0ka7u/
На PHP вышло многословно: https://ideone.com/YKik59
Ответы: >>956568 >>956698
Аноним 2017/03/06 20:34:33  №947867 355
>>945059 (OP)
В вебаче все тухло, поэтому спрошу здесь - когда верстаешь, то просто прикручиваешь ксс и хтмл, всякие жс-штуки не надо прикручивать? А если надо, то какие? Можно верстать просто так или все заказы обычно на верстку на какую-то платформу, типа бутстрапа?
Ответы: >>947870
Аноним 2017/03/06 20:37:06  №947870 356
>>947867
Если ты делаешь чисто хтмл + цсс - это верстка. Если еще и жс, или только жс - это уже фронтендом называется.
Ответы: >>947873
Аноним 2017/03/06 20:40:18  №947873 357
>>947870
А существуют заказы где просто собираешь хтмл+цсс?
Чем тогда фронтенд отличается? Фронт это когда добавляешь анимацию или что?
Ответы: >>947898
Аноним 2017/03/06 20:48:54  №947887 358
123213123.jpg (25, 450x750)
750x450
>>947761

А что на счет остального кода?
Аноним 2017/03/06 20:59:59  №947896 359
Как с помощью регекспа найти в строке пробел?
Аноним 2017/03/06 21:00:35  №947898 360
>>947873
>А существуют заказы где просто собираешь хтмл+цсс?
Да, но это уже лучше к дизайну отнести. Сейчас время такое, что верстал наплодилось пиздец. Фронтенд - это любая логика, вычисления, которая делается на стороне клиента. Если короче - вся жаваскрипт хуйня.
Аноним 2017/03/06 21:28:17  №947939 361
Вот по функциям вопрос. Если я в функции укажу переменные, вроде function fun(one, two, three), а после введу иные переменные, допустим oneThing, а после вызову функцию, но вставив новую переменную, вот some = fun (oneThing, ...), то будет ли сия функция работать? oneThing будет приниматься за one?
Ответы: >>947949
Аноним 2017/03/06 21:35:14  №947949 362
>>947939

Ты вообще при вызове не обязан указывать переменные, можно указать любое выражение.

func(1, 3, "hello") например
Ответы: >>947966
Аноним 2017/03/06 21:45:24  №947966 363
>>947949
Чего-то я не понимаю. Ведь функции выполнены действия с переменными, указанными уже. В эти переменные я после подставляю то, что нужно. А если я укажу любое выражение, которое не было указано, то как она будет выполняться, если в самой функции таковых нет?
Ответы: >>948034
Аноним 2017/03/06 22:05:36  №947982 364
Ответы: >>947987
Аноним 2017/03/06 22:09:51  №947987 365
Аноним 2017/03/06 22:51:53  №948034 366
>>947966

Переменные, которые при описании функции указаны в скобках, называются аргументы.

Когда ты вызываешь функцию, то внутри нее эти переменные-аргументы создаются и им присваивается значение, указанное при вызове.

Допустим, мы создадим такую функцию:
function something($x, $y) { ...

И позже ее вызовем так:
something(1, 3);

тут внутри функции $x получит значение 1, а $y значение 3.

Функция не имеет доступа к глобальным переменным, созданным снаружи нее (и наоборот, снаружи не видны локальные переменные, созданные в функции), потому даже если у тебя снаружи есть переменные с такими же именами (x, y) то они не имеют никакого отношения к тем, что внутри функции.

Потому аргументы как раз и нужны, чтобы передать данные в функцию снаружи.

И если ты еще не видел, в прошлом треде были посты про функции: >>939966 >>938135 >>938130

Аноним 2017/03/06 23:02:49  №948039 367
Господа, следуя вашим советам попробовал переделать скрипт согласно MVC

Стало https://github.com/grigoryMovchan/auth/tree/auth_mvc

Было https://github.com/grigoryMovchan/auth

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

Знаю, что косяк, когда модель непосредственно работает с глобальными переменными. Пока думаю над этим

Покритикуйте плиз

>>946192-кун
Ответы: >>949427 >>950244
Аноним 2017/03/06 23:10:35  №948041 368
>>947742
>Не, это не нужно, это просто ты не разобрался скопировал откуда-то.

Отсюда скопировал https://laravel.ru/docs/v5/quickstart-intermediate

Да, не разобрался, для меня до сих пор там какая-то магия происходит, хоть и получилось написать блог-поделку.
Ответы: >>948046
Аноним 2017/03/06 23:18:56  №948046 369
>>948041
Ну да, лярва выскоабстрактный кусок блевотины. Так сходу въехать во все происходящее именно в этом фреймворке и у опытного человека не сразу получится (например пришедшего с юи), попробуй доки почитать очень внимательно, хз че тут еще сказать.
Ответы: >>948048
Аноним 2017/03/06 23:24:23  №948048 370
>>948046
Да мне доки бесполезно просто так читать. Стал въезжать только когда начал пилить свою поделку, с этими уровнями абстракции как будто новый язык учу.
Но это так, лирическое отступление
Аноним 2017/03/07 02:38:52  №948197 371
Поясните разницу между роутером, диспатчером и фронт контроллером? Чем отличаются, все сразу делать надо или какое-то одно выбирают, какая разница вообще что использовать?
Ответы: >>954029
Аноним 2017/03/07 03:29:50  №948202 372
Поясните за MVC по пхп, кто как его учил?скинь материал как вы его осваивали, пожалуйста.
Ответы: >>948203
Аноним 2017/03/07 03:33:00  №948203 373
>>948202
В шапке вся информация есть.
Аноним 2017/03/07 03:36:49  №948205 374
14767489085960.jpg (491, 2560x1600)
1600x2560
Простите за глупый вопрос, но как вы учите, усваиваете пхп, я сначала читаю учебник и конспектирую в тетрадке, а потом смотрю видео уроки, вебинары по пхп и повторяю их в редакторе. Правильно ли я делаю?
Ответы: >>948206 >>948257 >>948322
Аноним 2017/03/07 03:39:00  №948206 375
Аноним 2017/03/07 08:22:23  №948257 376
>>948205
Нет, не совсем правильно. Нужно делать что-то своё, а не просто повторять. Напиши что-нибудь по аналогии, похожее, но не тупо переписывай с туториалов.
Аноним 2017/03/07 11:01:38  №948322 377
>>948205
Неправильно. Видео уроки и вебинары ничего не дают, бездумное повторение в основном тоже. Делать надо задачки как у ОПа, читать книги и документации. Прочел о какой-то новой фишке - пилишь под нее мини проектик. Когда достаточно много разных фишек освоил - пилишь проектик, где все их сразу используешь, тут-то сложности и возникают. Решаешь их, приходит понимание что и зачем, и в голове откладываются знания.
Ответы: >>948327 >>948338
Аноним 2017/03/07 11:33:34  №948327 378
>>948322
А я не гнушаюсь видео уроками. Такой же источник инфы, как и остальные. Доки/статьи/книги могут быть перегружены либо некритичной инфой, либо попросту водой. Видеоуроки напротив кучу инфы не досказывают, но для беглого взгляда на какие-то вещи очень хорошо подходят иногда.
Аноним 2017/03/07 11:57:52  №948338 379
>>948322
Я так напили поделок в процедурном стиле, теперь хуй разгребешь, при этом некоторые используются в поле. Так что тоже не серебряная пуля. Необходимости в ООП и MVC может долго не появляться, пока не придется что-то поддерживать или расширять, а когда для себя пишешь может и не придется.
Аноним 2017/03/07 17:58:29  №948531 380
>>947730
>>947718
Просто был невнимателен. Спасибо за помощь.
Аноним 2017/03/07 23:38:35  №948821 381
>Учи SQL, PDO, хотя бы основы

Собственно, есть что-нибудь годное по этому? Пасту читал. По идее сейчас должен делать список студентов, но по sql и pdo нихуя не знаю.
Ответы: >>948825
Аноним 2017/03/07 23:51:47  №948825 382
>>948821
Кевин Янк - PHP и MySQL. От новичка к профессионалу - 2013

Даст базовые знания как засунуть-вынуть данные с таблиц, соединить их и тому подобное.
Аноним 2017/03/08 00:38:52  №948843 383
>>947203
О! Я как раз около недели назад решил, что пора переходить на линукс. До этого всю жизнь сидел на винде тоже. Делал вот что:

1. Сначала почитал какой дистр выбрать, так как они все кажутся одинаковыми, первым выбрал дебиан, поставил на виртуальную машину и не проперся, но подумал "по описанию Дебиан вроде заебись, буду привыкать".

2. По совету друга "не выебываться и ставить убунту" поставил убунту и понял, насколько она охуенная с т.з. использования. Насколько там все проще и лучше для пользователя. В дебиане прям с момента установки какая-то еботня начинается.

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

Минусы, которые отмечаю в убунте по сравнению с виндой:
жесткий диск греется сильнее на несколько градусов (я в этом параноик), хотя можно поебаться и выключить всякие индексации;

флеш тормозит, мультики в браузере не посмотришь, хотя на ютубе все норм работает;

многих программ нет, например пунто свитчера, для других какие-то ебаные версии (флукс), но для флукса хотя бы есть альтернативы;

драйвера для графических и звуковых карт тоже вроде какие-то ебаные, периодически все рывками двигается, хотя драйверов около 10 версий на выбор;

грузится раза в два дольше винды, хотя выключается в десять раз быстрее.

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

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

И еще, 90% всех вопросов-ответов в гугле связаны с убунтой, а не с другими дистрами.
Аноним 2017/03/08 01:01:35  №948857 384
2017-02-2614-25-37.png (2150, 1920x1080)
1080x1920
>>948843
>Понял, что работать в виртуальной машине невозможно, все тормозит и нет стимула глубоко лезть в настройки.
Ну как сказать... Стоит в виртуалке, не тормозит и в настройки лезть приходится. Причем убунта
Ответы: >>948868 >>948870
Аноним 2017/03/08 01:13:18  №948868 385
>>948857

У тебя консоль показана, а как насчет GUI приложений, анимаций, видео, тяжелых интернет-страниц?
Ответы: >>948877 >>948883
Аноним 2017/03/08 01:14:08  №948869 386
>>948843
Зачем же убунта-то для повседневного юзания? Это ж самый тормоз, скатившийся до уровня винды, щас в моде linux mint и elementary os.
Ответы: >>949045
Аноним 2017/03/08 01:14:54  №948870 387
>>948857

Пару лет назад ставил убунту с GUI в виртуалку - на экране логина времяреакции на клик мышью было около минуты. Тогда Убунта что-то поменяла в интерфейсе так, что он должен был рассчитываться на GPU (использовался OpenGL, я так думаю), а в случае его недоступности GPU эмулировался на CPU и работало это сверхмедленно.
Ответы: >>948877
Аноним 2017/03/08 01:25:31  №948877 388
>>948868
А зачем? Мне от линукса для разработки только сервер нужен. А как выше кун писал, в винде обычные программы лучше работают и выбор больше.

Винду на том пике я не переустанавливал с 2011 года, я даже программы редко удаляю, ставлю и забиваю. Производительность никак не изменилась.

>>948870
Это проблема виртуалбокса, убунту ради гуи (хз зачем) надо ставить в vmware
Аноним 2017/03/08 01:30:21  №948879 389
>>948843
>Понял, что работать в виртуальной машине невозможно, все тормозит и нет стимула глубоко лезть в настройки. От опыта системы воодушевился настолько, что подчистил место на диске и сделал логический диск для убунты, поставил ее туда вместе с виндой
Виртуальную машину небось virtual box какой-нибудь юзал. Ставь Xen, он намного быстрее.
Аноним 2017/03/08 01:38:05  №948882 390
>>948843
>90% всех вопросов-ответов в гугле связаны с убунтой, а не с другими дистрами.
А знаешь почему? Потому что убунта - днище. Есть 3 дистра, где ничего не надо спрашивать, ибо все описано в мануале либо в виках - гента, арч и дебиан.
Ответы: >>948911
Аноним 2017/03/08 01:39:24  №948883 391
Ответы: >>948897
Аноним 2017/03/08 02:09:40  №948897 392
>>948883

В виртуалбоксе тоже есть проброс видеокарты, но там определенные условия. Как я понимаю, видеокарту надо отдать виртуальной машине целиком, а значит, надо иметь 2 видеокарты.

Вот, что пишут:

- нужно 2 видеокарты
- You need a CPU that supports IOMMU which is VT-D (Intel) and AMD-Vi. This allows Virtual Machines to interface directly with peripheral devices.

Также, в виртуалбоксе есть какое-то экспериментальное ускорение, когда в гостевую машину ставится драйвер и она как-то через виртуалбокс может использовать аппаратное ускорение (OpenGL или DirectX как я понимаю). Как минимум винда начинает намного быстрее работать в таком случае и разрешение экрана в ней автоматически подстраивается под размер окна.

https://blogs.oracle.com/fatbloke/entry/3d_acceleration_with_ubuntu_guests

Ответы: >>948946
Аноним 2017/03/08 03:01:35  №948911 393
>>948882
>Есть 1 дистра, где ничего не надо спрашивать, ибо все описано в мануале либо в виках - Windows 10
Не благодари
Ответы: >>948919
Аноним 2017/03/08 03:41:55  №948919 394
14784576169813.gif (2044, 245x207)
207x245
Аноним 2017/03/08 05:49:18  №948946 395
>>948897
>You need a CPU that supports IOMMU which is VT-D (Intel) and AMD-Vi
и хуй найдешь сейчас такой процессор
Аноним 2017/03/08 08:14:50  №948966 396
>>948843
Это pr или софтач? Если ты хотел научиться кодить на линуксах, достаточно было поставить серверную версию или купить нищевпску, десктоп для кодинга не нужен.
Истории успеха Аноним 2017/03/08 10:27:36  №948993 397
Настало время поделиться.

Где-то в апреле прошлого года понял, что хватит пинать хуи и пора таки становится нормальным программистом. Мой опыт - это работки в колледже, сами понимаете, не серьезно и не достаточно чтоб работу найти. Начал с нулевых задач этого треда, потом студенты, потом файлообменник. До конца они у меня так и не доделаны - функционал весь, но ОП еще присылал правки, то есть было, что улучшать. Параллельно работал курьером, то за 10к по полдня, потом за ~30к за месяц (да, очень хорошо платили). В ноябре заболел и пока сидел дома подумал, а дай-ка размещу резюме на hh, вдруг выйдет чего. В итоге на меня сами откликнулись. Больной бегал на собеседования. Их было целых три. Еще и тестовое дома делал. В итоге взяли на техподдержку. Современная веб-студия, пилящая на Битриксе (ба-дум-ц). Первые три месяца - 32к, потом 40. Вот жду-не дождусь повышения.

На собеседовании, кстати, оценили мои знания. То, что использую PDO прям плюсец жирный.

Теперь вот надо сдать 2 экзамена от Битрикса и потом у меня планы перевестись на разработку в этой же компании. (потому что, честно говоря, мне похуй почему у вас там сайт тормозит и почему слетает авторизация)
Ну а так вообще я подумал, что не хочу свою карьеру связывать с Битриксом, поэтому как-нибудь начну изучать серьёзный фреймворк.

Не могу вот решить с чего начать, Laravel или Symphony, кто что думает? На hh у них доли примерно равные
Ответы: >>949009 >>949224 >>949423
Аноним 2017/03/08 10:58:07  №949009 398
>>948993
Время проебываешь не битриксе только. Мне за год зарплату до 120к повысили, при чем я пишу даже без фреймворков на чистом php. Ну я правда в ДС, в других городах думаю вряд ли столько дали бы. Учи паттерны, mysql, юнит тестинг, архитектуру и написание нормального кода, а не конкретные фреймворки. Фреймворки имеет смысл смотреть только, чтоб понять как они написаны, зубрить сам фреймворк тоже смысла мало, они на разных фирмах разные все.
Ответы: >>949029 >>949037 >>949045
Аноним 2017/03/08 11:23:56  №949029 399
>>949009
120 за год? Круто, вдохновляет? Ну а разве фреймворк не является хорошим примером и способом изучения хорошего кода, паттернов и прочего?
Так-то да, понятно, что хороший уровень, это когда смена фреймворка - дело пары месяцев
Аноним 2017/03/08 11:37:42  №949037 400
>>949009
>я пишу даже без фреймворков на чистом php
быдло
Аноним 2017/03/08 11:52:21  №949045 401
>>949009
> при чем я пишу даже без фреймворков на чистом php
Ты по отдельности компоненты ставишь или свои изобретаешь? Ведь не дано другого + ты пишешь про тесты и архитектуру, значит у тебя там просто свой фреймворк велосипедный? Можно глянуть твои компоненты?

>>948869
Тормознутость определяется не дистром, а окружением рабочего стола (Desktop Environment). Они все почти одинаково тормозят, за исключением LXDE/Xfce. Из убунты можно выкинуть Unity и поставить что-нибудь полегче или вообще изначально собирать всё самому из Ubuntu Minimal: https://help.ubuntu.com/community/Installation/MinimalCD
Аноним 2017/03/08 12:02:39  №949054 402
я без линукса теперь даже уии накатить не могу на винду. установка композера превращается в целую эпопею. и все это ради возможность юзать фотошоп в винде без всяких костылей.
Ответы: >>949058 >>949061
Аноним 2017/03/08 12:07:18  №949058 403
>>949054
А у питона пип и джанги-фласки работают как часы на винде.
Аноним 2017/03/08 12:16:34  №949061 404
>>949054
Ну не знаю.
Я вот в Линуксе не разобрался вообще.
Тут всё делается легко и просто, там надо было пердолиться со всем на свете.
Ответы: >>949063 >>949064
Аноним 2017/03/08 12:17:57  №949063 405
>>949061
Это потому что ты в линуксе не сидел. там установка любого модуля или фреймворка или даже скачка верстки делается в одну команду в консоли.
Ответы: >>949066
Аноним 2017/03/08 12:18:42  №949064 406
>>949061
кстати, экзешник композера тоже не устанавливается. кеке
Ответы: >>949066
Аноним 2017/03/08 12:22:47  №949066 407
>>949063
Так в Windows то же самое.
Нужно просто знать эту команду.
Вот же у меня в курсе команда для установки плагина Asset и самого фреймворка.

>>949064
Нужно в папке правильной быть, оттуда запустить cmd.exe - Shift и ПКМ - выбрать "Открыть окно команд".
Аноним 2017/03/08 12:40:52  №949086 408
Прогаю верстку под битрикс и чувствую что тупею, все задачи одинаковые, мест где надо применить изящные решения минимум, посоветуйте блогов или сайтов с снипетами по php/bitrix. Прогал на phalcon а бывало и на haskell хочется той же изящности
Аноним 2017/03/08 13:30:24  №949122 409
с домашнего компа ща запустил комозер экзешник на винду, а вот с рабочего там какой-то путь не прописывался. странно все это. я же просто хотел сделать проектик на уии, но так как он не установился на раб. компе, пришлось брать кодеигнитер.
Ответы: >>949131
Аноним 2017/03/08 13:50:56  №949131 410
14889337153030.gif (2044, 245x207)
207x245
Аноним 2017/03/08 14:06:25  №949148 411
Охайо, пыхеры. Тупая макака-формошлеп на связи. Хочу уметь в симфони. Бложик писать не хочу, подкиньте идею для проекта. Спасибо.
Ответы: >>949197 >>949200
Аноним 2017/03/08 14:12:31  №949156 412
Почемуу ООП так сложнааа??? Зачем его придумали?
Ответы: >>949189
Аноним 2017/03/08 14:41:26  №949189 413
>>949156
Всё сложное придумано для того, чтобы стало легче.
А что сложного? Как раз просто в проектах: объявлен класс, пользуешься методами в любом файле, лишь указав namespace.
Если судишь по задачам ОПа, то не надо.
Они как олимпиадные задачки, такое тебе никогда в жизни не понадобится.
В проектах и фреймворках такого не бывает, чтобы в одном файле столько всего было наверчено.
Аноним 2017/03/08 14:50:09  №949192 414
>>945059 (OP)
Проверь плз задачу про айфон и кредит
http://codepad.org/lIrhPaUj

Все работает (проверял с разными суммами), но подозреваю что в плане элегантности это не самое лучшее решение. Есть какой-то образцовый вариант, на который можно равняться?
Ответы: >>949211
Аноним 2017/03/08 14:54:22  №949197 415
Аноним 2017/03/08 14:57:16  №949200 416
Аноним 2017/03/08 15:16:09  №949211 417
Аноним 2017/03/08 15:32:07  №949224 418
>>948993
Не иди туда. Битрикс это смерть. Если ты человек с позитивным уровнем icq то больше года не выдержишь, а потом еще и оказывается что за год ты приобрел бесполезный, и даже вредный опыт.
Аноним 2017/03/08 16:05:39  №949243 419
Аноны, mysqli::set_charset('utf8'), то вылетает "Invalid characterset or character set not supported". Как это починить?
Ответы: >>949251 >>949264
Аноним 2017/03/08 16:14:30  №949251 420
Ответы: >>949255 >>949264
Аноним 2017/03/08 16:16:23  №949255 421
>>949251
Нет, так тоже не работает. И на php.net именно "utf8".
Аноним 2017/03/08 16:25:16  №949264 422
Ответы: >>949267
Аноним 2017/03/08 16:31:10  №949267 423
>>949264
Ubuntu 16.04, из репов ставил.
Есть строка utf8 UTF-8 Unicode utf8_general_ci. Возможно ли ошибка из-за того, что при создании базы я указал uft8_unicode_ci?
Ответы: >>949272
Аноним 2017/03/08 16:34:39  №949272 424
>>949267

Попробуй задать кодировку с помощью запроса SET NAMES utf8 вместо set_charset.

И кстати, ты с БД-то соединился перед тем, как set_charset вызывать? И правильно ли вызываешь, как в мануале?
Ответы: >>949274 >>949276
Аноним 2017/03/08 16:37:43  №949274 425
>>949272
C SET NAMES все работает. Но смущает, что в мануале так не рекомендуют делать.
Создал еще одну базу с utf8_general_ci, таже самая ошибка.
Аноним 2017/03/08 16:48:24  №949276 426
>>949272
Попробуй что-то вроде charset-set-server = utf8 в конфигуе мускл прописать, и ресни базу.
Аноним 2017/03/08 17:15:15  №949301 427
Пхп-фреймворки легче чем питоновские фреймворки?
Есть ли отличия, что сложнее, ларавел, уи и т.д?
Есть ли там непонятная магия, сложно ли их изучить?
Ответы: >>949349 >>949445 >>949791
Аноним 2017/03/08 18:40:37  №949349 428
>>949301
Не знаю че там у пиздона, но вроде как шо там шо там по идее фичи должны не сильно различаться, не? Ну с учетом разницы в реализации ООП.
Аноним 2017/03/08 20:06:31  №949412 429
Дайте годную книжку пхп по ооп. Чтоб не только теория была, но и практика.
Аноним 2017/03/08 20:18:35  №949423 430
>>948993
Зачёт.

С битриксом не связывайся, это полное дно, и в профессиональном плане, и в плане зарплат.

Учи Symfony и перекатывайся в какую нибудь серьёзную контору, пишущую что то сложное на нём (CMS-ки, какие нибудь внутренние корпоративные порталы для автоматизации бумагоперекладывания, или в подобную фигню - такие есть, сам в такой работаю). Через 3-4 года, если голова светлая, будешь получать не меньше, чем синьёр на какой нибудь джаве-хуяве.
Аноним 2017/03/08 20:21:49  №949427 431
>>948039
Добавил роутер, переписал на классы с наследованием.

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

Ответы: >>950201
Аноним 2017/03/08 20:50:50  №949445 432
>>949301
Не знаю на счёт питона, но думаю что примерно такие же.
Там вся фишка в том, что подавляющее большинство современных пехапешных фреймворков (yii, laravel, zend) созданы под сильным влиянием ruby on rails и сильно на него похожи. Соответственно и друг на друга они очень похожи. Считай - если знаешь один - знаешь их все. В изучении довольно простые, особой магии нет.

Особняком только Symfony стоит. Он делался под влиянием java-вских spring mvc + hibernate, соответственно довольно сильно от них отличается. И область применения у него та же - всякая энтерпрайз фигня. Вот тут уже и магия присутствует (в виде кодогенерации и прочей фигни), и, самое главное, он предназначен для программистов, которые хорошо представляют себе, что такое ООП и как им пользоваться для того, чтобы не получилось такой ситуации, что на середине написания проекта код превращается в такие дикие макароны, что проще проект выкинуть, чем дальше развивать.
но это всего лишь инструмент - сам посебе фреймворк качества кода воообще никак не гарантирует.
Ответы: >>949446
Аноним 2017/03/08 20:52:56  №949446 433
>>949445
> довольно сильно от них отличается
довольно сильно отличается от других php-фреймворков, я хотел сказать.
На spring mvc + hibernate он как раз сильно похож (по крайней мере на их раниие версии, пока те в монстров современных не разрослись)
Аноним 2017/03/08 20:58:12  №949448 434
Все тут сифони, ларавел и юи в целом обсуждают.
А почему не фалкон?
Да, он не популярен так, как вышеозвученные, но он быстр, как шайтан. В целом по возможностям он предоставляет все, что нужно для комфортной разработки, разве что возникает желание обертку другую нагородить поверх не самого привлекательного апи.
Почему бы его не переместить в шапку? А то эта технология, очень даже привлекательная в плане потребления ресурсов сервера, остается практически неизвестной. Добавлю, что в нагрузку идет зефир, который позволит вынести в сишные расширения большую часть рутинной блевотины.
Ответы: >>949455 >>949458
Аноним 2017/03/08 21:03:52  №949455 435
>>949448
Потому что идея, заложенная в основу phalcon - абсолютно бредовая.

ПХП выбирают из-за скриптовой природы и, как следствие, предельной простоты разработки на нём. Естественно, в ущерб быстродействию потом. ничего бесплатно не бывает.

Если тебе нужно быстродействие .... то нафига тогда вообще php брать?? Для этого есть java, c++, go наконец.

А проект на phalcon - это какая то дикая менашиша из кода на PHP и C - ну пиздец. В итоге ни удобства разработки на PHP, ни быстродействия полностью компилируемых языков.
Ответы: >>949461 >>949475
Аноним 2017/03/08 21:04:38  №949458 436
>>949448
в жопу тибя поебали, а ты питухом завизжал, хехе.
Аноним 2017/03/08 21:07:19  №949461 437
>>949455
Ну вот есть у меня проект на фалкон. Я в сишный и зефирный код не залезал даже, все на пхп. Немного неудобное апи в сравнении с остальными обдроченными абстракциями фреймфорвками, но востальном все точно то же самое, только пашет намного быстрее. Фалкон не минифреймворк, он решает своим сраным сишным расширением 80% рутинных задач, я не вижу причин его не использовать и не развивать.
Ответы: >>949544
Аноним 2017/03/08 21:20:45  №949475 438
>>949455
На работе фалькон, никакой мешанины из Си там нет, обычный PHP. Не знаю откуда ты взял что там какая-то мешанина будет, фалькон в использовании ничем от других фреймворков не отличается.
Аноним 2017/03/08 21:50:01  №949525 439
14851850177011.jpg (64, 595x604)
604x595
Рыбята, я прошел курс молодого тельца и решил взяться за задачу про студентов. Начал читать и охуел, начал кричать "Слажнаааа", а где же работа с базой данных, создание страниц из данных вытянутых с базы? Тут циферки слаживали , а тут хуяк , посчитай остаточную массу электрона при распаде радия за 15 миллионов лет при условии что Маша и Миша не давали интервью в Лондоне.
Аноним 2017/03/08 22:14:14  №949539 440
>>949525
На самом деле, все довольно просто. Я тоже сначала охуевал. Почитай пару статеек про MVC сначала.
Аноним 2017/03/08 22:21:35  №949544 441
Аноним 2017/03/08 22:26:13  №949546 442
14757830840390.jpg (35, 480x425)
425x480
>>949525
Посмотри в книжке из разряда пхп для даунов как работают с бд для начала, освоишь взаимодействие бд и пыхи, навертишь верстку и вот студенты и готовы. А потом ОП тебе разъяснит что ты лалка, пойдет процесс и ты все поймешь.
Аноним 2017/03/08 22:28:29  №949548 443
>>949525

Ночь через ночь - это 15 дней в месяц надо работать за 8000 р? Я боюсь считать даже сколько там в час выходит. 1 доллар?
Ответы: >>949585
Аноним 2017/03/08 22:30:14  №949549 444
>>949525

А ты комментарии к задаче и статьи по ссылкам из комментариев прочел? А задания отсюда https://github.com/codedokode/pasta/blob/master/soft/web-server.md решил? А туториал из офиц. мануала прочел?

И не бойся, в видеокурсах сразу с этого начинают, без задач на циферки.
Ответы: >>949567
Аноним 2017/03/08 22:45:29  №949567 445
14627334761873.jpg (26, 492x289)
289x492
>>949549
Я таки считаю, что переход к студентам несколько резковат. Но может это и к лучшему, ибо отсеет даунито, которые не могут даже в гугл.
Ответы: >>949591
Аноним 2017/03/08 22:52:13  №949573 446
сегодня осознал, что можно делать вот так и подумал, что после того, как перешел с js, немного отупел в плане всяких фишек, укрощающих код, зато поумнел в качестве "хуяк хуяк и в продакшн"
Аноним 2017/03/08 22:54:31  №949577 447
>>949573
Ещё можно писать <?= $variable ?>
Ответы: >>949613
Аноним 2017/03/08 22:55:56  №949580 448
awUKO62.gif (844, 500x282)
282x500
>>949573
Ты освоил тернарный оператор? Ну охуеть теперь.
Аноним 2017/03/08 23:01:21  №949585 449
forma.jpeg (5, 193x261)
261x193
>>949548 Лол, работаю по такому графику, зарплата 37$, 31 год. Когда в тредах ржут над фрилансерами которые зарабатывают по 100 баксов, я не смеюсь, я им завидую
Ответы: >>949589
Аноним 2017/03/08 23:04:05  №949589 450
>>949585
Что мешает не работать так?
Любым копирайтером ты заработаешь тысяч десять в месяц без особого напряга.
Ответы: >>949596
Аноним 2017/03/08 23:06:13  №949591 451
>>949567
Да если так подумать то и тред тогда нинужен, гугол есть, хули сноб ебаный
Ответы: >>949652
Аноним 2017/03/08 23:07:59  №949592 452
>>949573
можно, если только тебе на свjих коллег насрать. И на себя тоже.
1) $status = '0'; echo $status == 1 ? 'yes' : 'no' выведет 'yes'. Это раз.
2) статус = 1. Ну заебись. Это что за статус такой? а если там 2 будет - это что значит?
Правильно хотя бы так
<?php echo CategoryStatusConverter::statusToString($category) ?>
где:
class CategoryStatusConverter {
const STATUS_ENABLED = 1;
const STATUS_DISABLED = 2;
public static function statusToString(array $category)
{
if (array_key_exist('status', $category)) {

if ($category['status'] === self::STATUS_ENABLED) {
return 'yes';
} elseif ($category['status'] === self::STATUS_DISABLED) {
return 'no';
}
}
return 'unknown';
}
}
а ещё лучше djj,ot без статических методов обойтись.
Ответы: >>949594 >>949604 >>949613
Аноним 2017/03/08 23:10:03  №949594 453
>>949592
>$status = '0'; echo $status == 1 ? 'yes' : 'no' выведет 'yes'.
обосрался, будет 'no', но остального это не отменяет
Аноним 2017/03/08 23:11:07  №949596 454
>>949589
Вся ппроблема работы в сети , что надо пару месяцев сосать хуи без соли, пока набьешь клиентуру.
Аноним 2017/03/08 23:11:15  №949597 455
>>949573
>укрощающих код
Это усложняет его восприятие
Ответы: >>949613
Аноним 2017/03/08 23:14:42  №949600 456
Допустим есть запрос user?id=123 .
Где лучше выполнить ридерект если запрос не валиден? В самой функции проверки на валидность или в контроллере?

function getID()
{

if (isset($_GET['id']) and is_numeric($_GET['id'])) {
return $_GET['id']
}

????
}


function runUser()
{

$id = getID();

//Правильно?
if (!$id) {
redirect...
}

}
Ответы: >>949602
Аноним 2017/03/08 23:16:09  №949602 457
>>949600
При проверке на валидность.
Ответы: >>949605 >>949607
Аноним 2017/03/08 23:16:25  №949604 458
>>949592

Не всегда так надо усложнять. Если вывод нужен только в одном месте программы (а в других местах статус обозначается по-другому), то можно сделать и тернарным оператором.

Если вариантов больше, то можно сделать массив для перевода из статуса в текст.

Аноним 2017/03/08 23:18:35  №949605 459
>>949602
>При проверке на валидность.
Объясни в двух словах почему, если несложно пожалуйста?
Аноним 2017/03/08 23:21:34  №949607 460
>>949602
схрена ли?
задача валидатора - проверить валидность и ответить, валидно ли значение или нет. Но ни в коем случае не редиректить.
Задача контроллера - принять запрос, проверить с помошью валидатора и вернуть ответ. Или вернуть ошибку, если запрос невалиден.
Так что редиректить тут вообще не нужно. Нужно юзеру ошибку вернуть и показать в браузере.
Ответы: >>949612 >>949624
Аноним 2017/03/08 23:26:54  №949612 461
>>949607
Проверка на валидность более комплексное действие в общем случае, чем проверка одно айдишника. В целом моя позиция в том, что валидатор должен вернуть тру или фалс в зависимости от результата, + сообщение читаемое.Результат работы обрабатывается в коде, например, контроллера, и при фалсе редиректит куда-илбо. Но сама проверка должна осуществляться валидатором, контроллер, или кто там выше валидатора стоит, должны лишь отрегировать на валидацию.
Ответы: >>949617 >>950264
Аноним 2017/03/08 23:27:01  №949613 462
>>949577

ohuet'
я совсем забыл, спасибо.

>>949592

ты совсем поехал?
во первых, работает абсолютно корректно, во вторых, вариантов статуса всего 2. 1 и 0. Ты что, надграфу не можешь почитать? IS VISIBLE. Да и нет. Какие еще варианты? на пол шишечки?

>>949597

в сложных вариантах - да, а тут почти человеческая речь. Статус равняется единице? напечатай да, или нет. Не знаю, все лучше, чем писать огромные if ($qwe == 1) echo '1'; else echo '2';
Ответы: >>950264
Аноним 2017/03/08 23:28:05  №949614 463
Объясните, пожалуйста, про CMS, типа Joomla и Drupal, что это за зверь такой, и чем они отличаются от обычных веб-фреймворков?

Я всегда писал сайты на фреймворках - CodeIgniter, Yii, Django, ASP.NET MVC, Spring и Play - а сейчас вот предложили работу на Joomla.

Это что ли такой визуальный конструктор типа Delphi?
Ответы: >>949618 >>949621 >>950264
Аноним 2017/03/08 23:30:24  №949617 464
>>949612
Добавлю, что своим опытом выстраданные проекты привели меня к следующей схеме: любое несоответсвие отплевывается в виде жэксепшена, принимаего одни или несколькими обработчиками (чаще всего все же одним), и в связи с этим до контроллера вообще не доходит ничего в случае провала валидации.
Ответы: >>950119
Аноним 2017/03/08 23:33:47  №949618 465
>>949614
Это способ работатьб слесарем в чужой системе. Когда мы работаем на фреймворках мы и есть творцы системы в целом (бизнес логики). Когджа ты работаешь внутри какой-нибудь цмс ты лишь можешь рядом с этой системой (уже заранее заданной бизнес логкиой) возвести костыль, фиксящий то-то и то-то в самой системе. Но свобода твоя очень сильно ограничена. Вот в этом и разница.
Ответы: >>950264
Аноним 2017/03/08 23:34:54  №949621 466
>>949614
На вопрос о визуальном контрукторе типа делфи: и да, и нет. Ограничения примерно те же на самом деле, но все же свободы у тебя чуть больше.
Аноним 2017/03/08 23:36:01  №949624 467
>>949607
>любое несоответсвие
Зачем вбрасывать исключение при проверке данных введенных пользователем? Исключения нужны только для программистов, чтобы в случае если вся программа по какой-то исключительной причине не может продолжать или выполнить работу.
Ответы: >>949626 >>950799
Аноним 2017/03/08 23:38:10  №949626 468
>>949624
Зависит от того, как ты исключения обрабатываешь. У меня большая часть исключений выбрасывается клиенту в виде удобочитаемого сообщения че там и не так. Но я в основном апишник, мне этот момент очень важен.
Ответы: >>949628 >>949636
Аноним 2017/03/08 23:40:46  №949628 469
>>949626
А можно посмотреть пример твоих исключений? Для личного опыта.
Аноним 2017/03/08 23:49:40  №949632 470
>>9496
Писать легче, но «огромные» условные операторы читать легче. Поймешь, когда начнёшь поддерживать чей то код
Аноним 2017/03/08 23:53:46  №949636 471
>>949626
Ну, сорян, мои апи репы закрыты. Если на словах, то суть исключений апишных в том, чтобы в коцне сформировать короткой и понятное сообщение для клиента. притом для меня. Адово помогает в отладке. клиентов много ,апи одно, ты и сам знаешь наверно.
Если его не сформировать, то я и сам не буду знать че там такое произошло прямо. Случаи подобного очень часты. Апи призвано отдавать либо ошибку подробную, либо валидные данные. Тут мимо идут сразу верстка и фронт, а потом эксепшены с моей стороны обязательны, иначе хуй отдебажишь вообще что-либо.
Ответы: >>949639 >>949644 >>950264
Аноним 2017/03/08 23:55:00  №949639 472
>>949636
Ну а с точки зрения клиентов мои ошибки обрабатываются как валидные ответ с отличным от 200 кода.
Аноним 2017/03/09 00:03:50  №949644 473
>>949636
Да я новичок вообще! Мне интересно как правильно должны писаться исключения.
Я обычно пишу так:

if (something wrong) {
throw new Exception("error");
}

Но мне хотелось бы знать как получить с помощью исключений максимально информации! Пока именно даже не знаю какой.

Думаю что нужно наследовать и писать своё исключение, и потом в конструкторе писать все нужные подробности. Но почему-то мне кажется что в конструкторе плохо писать логику исключения.
Ответы: >>949648 >>950264
Аноним 2017/03/09 00:10:02  №949648 474
>>949644
Максимум информации ты получаешь уже в конструкторе исключения. Стак и прочее у тебя дступны силами разрабов самого языка, твое дело отдать наилучшее сообщение при new Exception, корторое ты только можешь, + определить форматирование в завимимости от способа отлдачи (я предпочитаю джейсон апи).
Аноним 2017/03/09 00:12:21  №949650 475
Чето гуглил, не могу найти как настроить роутер, только что бы работало на апаче.
Ответы: >>950263
Аноним 2017/03/09 00:14:51  №949652 476
14511556474840.png (658, 640x911)
911x640
>>949591
На хуй присядь. ОП очень много объясняет того, чего ты нигде не прочтешь. Но для того, чтобы добраться до кладезя его знаний, гуглом нужно уметь пользоваться. На кой ты вообще нужен, если общедосьупную информацию получить не можешь?
Ответы: >>949918
Аноним 2017/03/09 01:04:41  №949681 477
Я как понимаю, мануал пхп для бывалых написан? Я сколько его читаю, понимаю меньше половины.
Ответы: >>950263
Аноним 2017/03/09 01:06:14  №949682 478
>>945059 (OP)
Сап, доброкун, а ты не думал перезалить на более качественный хостинг свой проект и сделать там генератор .pdf, .doc, .epub, .fb2 слепка сайта. Ты же вроде еще не бросил учить анонов, а так бы было всем желающим удобно получать все в одном месте, я вот читаю с андроида, оно вроде бы удобно, но иллюстрации распидорашивает и если изначально у тебя была задумка с пошаговым изучением, то затем все меню сайта расползлось куда-то в ебеня, а материал все равно прибывает. Вот если бы ты сделал в более читабельном виде и автоматическую генерацию, то тебе бы не надо было бы каждый раз обновлять весь набор работ, а пользователи бы просто догружали файлы по завершенным "аркам" уроков.
Инб4: сделай сам
Я бы и рад, да пока знаний на этот счет не особо, но если вообще тебе нравится идея, то я бы покопался на этот счет и как найду в себе силы, то готов сделать это вместо тебя.
Ответы: >>949691 >>950263
Аноним 2017/03/09 01:19:43  №949691 479
>>949682
О чём ты говоришь? В мобильном браузере всё прекрасно видно.
Аноним 2017/03/09 05:41:34  №949761 480
Аноны, молю о помощи!

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

http://dushuo.ru

^ Сам сайт. И я так и не смог понять, как сделать отображние материалов, как это обычно идет на всех сайтах - прикрепленное фото с кратким описанием либо началом материала, которое можно увидеть, непосредственно открыв этот материал. У меня почему-то всегда получается простой список заголовков материалов. Пытался читать туторы, решения моей проблемы так и не нашел. Извините, если ошибся тредом, но не мог бы кто-нибудь тезисно объяснить мне, как это сделать? Всем добра.
Аноним 2017/03/09 08:54:04  №949783 481
>>949761
Сделаю вам сайт за 60 штук вместе с дизайном с тем функционалом, что уже есть те без доработок. Предоплата - половина.
Ответы: >>949799
Аноним 2017/03/09 09:06:40  №949786 482
Анон, у меня установлена ubuntu 16.04 с apache сервером. Когда пытаюсь зайти через localhost - то все нормально. Но когда ip, то у меня просят логин и пароль. Так вот, отчего это чего этот логин и пароль должен быть? Что ни пробовал - не подходит.
Ответы: >>950263
Аноним 2017/03/09 09:43:43  №949791 483
>>949301
Все скриптовые языки похожи, выучил пхп и делать перекат в рельсы или питон уже легко.

Все MVC фреймворки похожи,если хорошо освоил язык и патерны перекатываться между ними не так уж и сложно.


Для старта, посоветовал бы выбирать что по сложнее и правильнее с точки зрения языка и его патернов. В пхп это Symfony, вроде как.
Аноним 2017/03/09 10:03:42  №949799 484
>>949783
Нашей школе за последние лет 5 учредитель столько денег не дал, откуда такие деньги?
Аноним 2017/03/09 10:57:00  №949828 485
>>949761

сделай условие: если длина материала выше n символов, то проверить, есть ли краткое описание материала и отобоазить его, если такошо нет, то отобразить первые первые n символов материала. И в конце добавь строку с ссылкой на страницу материала, или на расширение статьи. Во втором случае обрезать материал будешь через js и jquery.
Ответы: >>949829 >>949847
Аноним 2017/03/09 10:58:59  №949829 486
>>949761
>>949828

вообще, пиши мне на мыло, если что. Я не заебись спец, но помочь-проконсультировать всегда рад.
[email protected]
Ответы: >>949847 >>949987 >>950328
Аноним 2017/03/09 11:36:41  №949847 487
>>949828
>>949829
Спасибо, анон, сейчас разгребусь с соревнованиями и отчётами и напишу тебе чуть позже. Спасибо за помощь.
Ответы: >>949876
Аноним 2017/03/09 12:21:51  №949875 488
>>949761
Сразу видно, что учитель из тебя не очень. Запрягаешь ученика 9 - 11 класса за пятёрку в четверти сделать сайт и всё, проблем нету. Ещё потом и хвастаетесь другим школам, что у вас вот такие ПРОГРАММИСТЫ умные в школе есть. А вообще гугли создание блога на джумле, хотя там всё должно работать хорошо из коробки, но я уверен что весь нужный функционал для сайта будет в таких статьях.
Ответы: >>949987 >>950328
Аноним 2017/03/09 12:21:59  №949876 489
>>949847
а там контента много? Не проще поставить блогодвижок типа postleaf/wordpress?
Ставить жумлу в 2017 это какой-то зашквар
Ответы: >>950328
Аноним 2017/03/09 12:47:33  №949885 490
Блин, вот все гонят на пехопешников, а у вас реально самый толковый faq и трэд.
Ответы: >>949893
Аноним 2017/03/09 13:18:23  №949893 491
>>949885
Тут всяко интересней сидеть, чем на пхп кодить. Что бы не делать, лишь бы не работать.
Ответы: >>949926
Аноним 2017/03/09 14:01:07  №949906 492
Помогите плез, вот у меня есть массив, и я хочу сделать ещё один массив с определённого номера (?)
Например есть ['a','b','c','d','e','f']
И я хочу отсечь всё с номера 3 включительно, так чтобы новый массив выглядел так - ['d','e','f']
Как мне это сделать?
Ответы: >>949909
Аноним 2017/03/09 14:03:08  №949909 493
Ответы: >>949910
Аноним 2017/03/09 14:04:08  №949910 494
Аноним 2017/03/09 14:19:41  №949918 495
>>949652
Хуясе ты агресивный. Курс евгеники закнчивал?
Аноним 2017/03/09 14:25:22  №949921 496
>>947642
>Ой, не ту ссылку про MVC дал, вот правильная: https://github.com/codedokode/pasta/blob/master/arch/mvc.md
Спасибо, уже читаю.

Вот ещё вопрос по архитектуре (или чему-то подобному).
На сайте есть таблица в некими полями. Одно из полей предназначено для миниатюр фотографий, которые загружают пользователи. Но как эти файлы лучше хранить? Помещать в БД, вроде, не стоит. Просто хранить в отдельной папке, а в БД сделать таблицу соответствий (Фото164542.jpg - это вторая миниатюра для записи №476)? Или сразу переименовывать (Фото164542.jpg -> Фото164542-2-476.jpg), а потом парсить всю папку силами пхп?
Ответы: >>949927 >>950263
Аноним 2017/03/09 14:29:08  №949924 497
Читаю этот php.net и просто охуеваю, все написано через пень колоду, никакой структуры, никаких мануалов по работе и взаимодействию php mysql apache,спрашиваешь где лучше почитать , что бы не распыляться на миллиард мануалов, сразу прибежал оберштурмбанвахтер с криками "В печь полезай унтерменш!"
Аноним 2017/03/09 14:31:27  №949926 498
>>949893

а на каком языке копить интересно?
Аноним 2017/03/09 14:31:41  №949927 499
>>949921
Я часто работал с такой схемой, что миниатюры и прочие пресеты (у нас их штук 100 на сайте одном было) хранятся по разным путям. То есть например оригиналы по адресу /originals/image-name.png, а к примеру миниатюра 100х100 для этого же лежит в /100x100/image-name.png. Довольно наглядно выходит. Там конечно структура на реальном проекте будет сложнее, но ничего сверхъестественного.
Вариант с названием самих файлов тоже нормальный. В бд, конечно же, изображение лучше не хранить.
Ответы: >>949930
Аноним 2017/03/09 14:40:31  №949930 500
>>949927
>миниатюры и прочие пресеты (у нас их штук 100 на сайте одном было) хранятся по разным путям
Это понятно.
>Вариант с названием самих файлов тоже нормальный.
То есть, оптимально будет при загрузке файла добавлять в его название информацию, к чему он относится, а когда нужно прикрепить изображение к странице, парсить имена файлов? А если файлов будет несколько десятков тысяч? У меня ожидается добавление примерно 30-40 тысяч картинок в год и сайт с этим должен работать хотя бы лет пять.
Ответы: >>949933
Аноним 2017/03/09 14:48:44  №949933 501
>>949930
Я видимо не понял, какую ты задачу решить пытаешься, ибо при любой схеме с составлением пути или имени файла по каким-то определенным тобой правилам ничего тебе парсить не нужно будет в поисках нужной картинки. Опиши тогда саму задачу подробнее.
Ответы: >>949938
Аноним 2017/03/09 14:56:25  №949935 502
Вкатываюсь в кодигнитер
какие подводные?
Ответы: >>950123 >>950260
Аноним 2017/03/09 15:05:44  №949938 503
>>949933
Задача такая:
Для контроля выполнения работы, работнику нужно сделать фото до, в процессе (возможно, несколько) и в конце. Кроме того, проставить время выполнения и некоторую другую информацию. Для этого, сначала менеджер забивает заказ в таблицу заказов и выбирает исполнителя (через интерфейс менеджера). Исполнитель заходит под своим логином на сайт (через интерфейс исполнителя) и видит, что у него образовался заказ, а так же его параметры. В ходе выполнения, он делает фотографии и загружает их на сайт. У них автоматически проставляется время. А менеджер в офисе видит в строке заказа миниатюры. Ну или хотя бы текст типа "2 фото прикреплено", кликнув по котором, можно эти фотографии просмотреть.

На сервере фотографии скорее всего будут сразу ужиматься до некоторого стандартного разрешения и делаться миниатюры. А вот с тем, как потом быстро и удобно прикреплять их к страницам, пока не разобрался.
Аноним 2017/03/09 15:59:26  №949950 504
Да, я ебанутый . Вот создал я такие настройки в апаче.
<VirtualHost *:80>
DocumentRoot /home/lpkn/bogdan-footer
ServerName www.koloda.org
<Directory "/home/lpkn/bogdan-footer">
allow from all
Options +Indexes
</Directory>
</VirtualHost>
Как нужно обратится к www.koloda.org в браузере что бы оно показало мои файлы , а не ресурс в интернете?
Ответы: >>949959 >>950260
Аноним 2017/03/09 16:22:26  №949959 505
>>949950
Пропиши в /etc/hosts
127.0.0.1 www.koloda.org
Аноним 2017/03/09 16:41:37  №949968 506
Есть кусок задачи:
"Создайте две страницы сайта, используя технику шаблонов и класс View из предыдущего ДЗ:
1.news.php - отображает список всех новостей. Заголовок у каждой - ссылка на страницу этой новости, под заголовком - краткий текст
2.article.php?id=NNN - отображает новость номер NNN с полным текстом"
Объясните, пожалуйста, как именно должен передаваться get запрос. Переход на article.php ведь осуществляется по ссылке на страницу, а не через <form> с кнопкой.
Ответы: >>949975 >>949991 >>950260
Аноним 2017/03/09 16:51:32  №949975 507
>>949968
Я даже знаю откуда эта задачка, сам проходил два курса (первый скачал, второй оплачивал).

Гет-запрос передается по умолчанию, когда ты запрашиваешь URL.
article.php?id=<?php echo $article['id']; ?>

Почитай урок по http из шапки, у методов гет и пост применение шире, чем отправка форм.
Ответы: >>950263
Аноним 2017/03/09 17:10:15  №949986 508
85447.jpg (228, 1920x1080)
1080x1920
Друзья, помогите 27-летнему вкатывальщику. Я только начал изучать PHP.
Задача стоит следующая, после PDO::FETCH_CLASS, из базы я получаю массив объектов своего класса (длина массива неизвестна). Допустим $clients. У объектов есть несколько свойств включая, допустим $clients->state (бинарная false || true). Теперь мне необходимо создать два цикла, которые позволят мне обработать все свойства объекта. Но дело в том, что в одном цикле должны быть только объекты со значением state == true, а во втором только с фолсами. Проблему можно решить, просто составив два SQL запроса в БД, (вроде SELECT хуй FROM игрушки WHERE state = false). Но мне нутром кажется, что можно не дергать лишний раз базу, а как-то раскидать по двум циклам массив объектов исходя из свойства state. Мальчиков налево, девочек направо. Внимание, как это сделать? http://php.net/manual/ru/language.oop5.iterations.php тут читал, нихуя не понял. Похоже это даже не то что мне нужно.
Ответы: >>949995 >>950260
Аноним 2017/03/09 17:11:06  №949987 509
>>949875
>ДЮСШ
>пятёрку в четверти
Чета обзмеился.
>хвастаетесь другим школам, что у вас вот такие ПРОГРАММИСТЫ умные в школе есть
А потом его заставляют за бесплатно поднимать и обслуживать сайты всем этим другим.

Вообще, >>949761 выглядит неплохо, но тебе с нулевыми знаниями тяжело будет, пиши >>949829 анону полюбасу.

Аноним 2017/03/09 17:17:49  №949991 510
>>949968
Просто прописываешь в ссылке на файл после названия и расширения это ?id='number', это и передает GET запрос. т.е, на новой странице ты уже можешь получить 'number' через $_GET['id]. Мимо несчастный с циклами
Аноним 2017/03/09 17:30:37  №949995 511
Ответы: >>949997
Аноним 2017/03/09 17:34:38  №949997 512
>>949995
Благодарю, то - что нужно.
Ответы: >>950000
Аноним 2017/03/09 17:36:34  №950000 513
>>949997
Нет, ты не понял. Ты лезешь в ООП, не зная толком циклы. Советую прорешать задачки из ОП-поста. С самой первой.
Ответы: >>950003
Аноним 2017/03/09 17:45:06  №950003 514
>>950000
'к. Порешаю обязательно. Циклы и ветвления я немного знаю, просто похоже действительно сегодня переработал. А ООП сразу, потому что в конторе, сказали приходи через месяц с PDO и ООП и возьмем тебя за еду. В любом случае больше чем есть сейчас.
Аноним 2017/03/09 21:33:41  №950119 515
>>949617
Потом удаляешь все файлы через unlink, подключаешься через сокет к апишке сервера и запускаешь детонатор, чтобы взорвать сервак к чертям. А все потому что пользователь ввел невалидный email.
Аноним 2017/03/09 21:36:46  №950123 516
>>949935
Упереться в его потолок и начать писать к нему костыли.
Аноним 2017/03/09 22:40:48  №950178 517
Ответы: >>950183 >>950215
Аноним 2017/03/09 22:44:47  №950183 518
>>950178
>Умение играть на гитаре и курить план;
Зарепортил в ФСКН.
Аноним 2017/03/09 22:56:34  №950201 519
>>949427
Подключил автозагрузчик композера, прописал неймспейсы, орнул когда схватил "class pdo not found", но быстро вдуплил почему.

Собственно, теперь авторизация и каркас готовы, буду наращивать функционал.

Ответы: >>950261
Аноним 2017/03/09 23:24:27  №950215 520
>>950178
https://fastvps.ru/t4u
Накидал за 5 минут, обоссываем:

1)
function count_smileys($arr): int {
$count = 0;
foreach($arr as $smile){
if(preg_match('^[:;][-~]{0,1}[)D]', $smile)){
$count++;
}
}
return $count;
}

2)
function get_volume_of_cuboid($length, $width, $height) {
if (
gettype($length) !== 'integer') ||
gettype($width) !== 'integer') ||
gettype($height) !== 'integer')
) {
return;
}

return $length $width $height;
}

3)
function solution($str) {
$length = mb_strlen($str);

if (($length / 2) == 1) {
$str .= "_";
}

$array = [];

for($i=0; $i<$length; $i++) {
$array[$i] = mb_substr($str, $i, 2);
}

return $array;
}

Гуглил только что такое кубоид, лол.
Аноним 2017/03/09 23:51:47  №950232 521
14881455484220.jpg (83, 604x477)
477x604
>>950215
Блять , сука, рыгать хочу от вида кода php. Язык как язык, но выглядит просто пиздец.
Аноним 2017/03/10 00:05:27  №950235 522
14879797974833.jpg (87, 604x520)
520x604
Так взялся за студентов, начал читать за роутинг.
"делать роутинг средствами сервера. Для каждой страницы в папке public создается отдельный скрипт (index.php, register.php) и из него либо вызывается соответствующий контроллер, либо прямо там же и пишется код контроллера"
Что за папка public? Это типо public_html на убунте? Что за контроллеры? Их надо писать средствами php? Я нихуя не понял, простите, я туповат, да , на пальцах , примерах только понимаю.
Ответы: >>950244 >>950264 >>950270
Аноним 2017/03/10 00:18:53  №950244 523
14878019841940.jpg (77, 960x539)
539x960
>>950235
Тут нет другого варианта, кроме как прочитать кучу статей и уроков по теме, попутно пытаясь сначала повторить, а потом сделать свою поделку. У меня на это действительно много времени ушло.

Я учил не по ОП-посту, но там в принципе тоже все есть и объясняется проще чем на хабре.

Удачи.

>>948039-кун
Ответы: >>950424
Аноним 2017/03/10 00:33:37  №950260 524
>>949935

Старый фрейморк, учит неудачным решениям.

>>949986

Тебе надо изучить циклы и массивы сначала.

>>949968

GET-запрос это когда браузер запрашивает страницу с определенным URL с сервера. GET-параметры пишутся после знака вопроса в этом URL. Форма не обязательна.

>>949950

Браузер преобразует имя узла (www.koloda.org) в Ip-адрес этого узла с помощью системы DNS, отправляя запрос на DNs-сервер. Однако, с помощью файла hosts можно указать соответствие имени и IP явно, и в качестве IP прописать адрес твоей машины (127.0.0.1). Тогда браузер будет соединяться с запущенным на ней веб-сервером (Апачом).

>>950215

Это лучше отправить на проверку в ту компанию.
https://github.com/grigoryMovchan/auth/ Аноним 2017/03/10 00:34:04  №950261 525
>>950201

Раз у тебя есть папка public, надо бы в нее перенести index.php и сделать ее корневой папкой веб-сервера, а то у тебя весь код наружу выставлен получается.

https://github.com/grigoryMovchan/auth/blob/auth_mvc/db.sql#L25
> ENGINE=MyISAM
Прочитай в интернете различия между движками MyISAM и InnoDB, особенно про поддержку внешних ключей и транзакций

nbproject возможно стоит внести в gitignore целиком. Это же конфиги конкретной IDE, а не часть проекта.

https://github.com/grigoryMovchan/auth/blob/auth_mvc/index.php
> require 'app/bootstrap.php';

Идея bootstrap-файла в том, что он инициализирует приложение, а не запускает разбор запроса. Он нужен на тот случай, когда у тебя несколько точек входа в приложение, например cli-скрипты. И не хочется копипастить один и тот же код в начало каждого из них.

В твоем варианте bootstrap тут никак не помогает и вообще его правильнее было бы назвать index.php, а не bootstrap.php.

https://github.com/grigoryMovchan/auth/blob/auth_mvc/app/models/AuthModel.php
тут все смешано в кучу, все компоненты MVC в одном классе. Да и даже если рассматривать одну функцию, там все перемешано, потому что ты не смог разделить стену кода на отдельные действия-функции.

Идея ООП в том, что у нас каждый компонент отвечает за свою часть задачи. Один класс, который умеет соединяться с БД и выполнять запросы, другой класс, который умеет искать пользователей в базе, третий класс, который умеет еще что-нибудь.

Ну и название - "модель" тоже очень неудачное. Что такое модель, в твоем понимании?

https://github.com/grigoryMovchan/auth/blob/auth_mvc/app/core/Model.php
Тут все неправильно с начала и до конца.

Ну например у тебя в каждом объекте-модели свой объект PDO в то время как правильнее создать один объект и совместно его использовать.

Далее, у тебя смешано много задач. У тебя базовый клсс модели занимается:

- чтением конфигов
- установкой соединения с БД
- выполнением SQL запросов

https://github.com/grigoryMovchan/auth/blob/auth_mvc/app/core/Model.php#L69
> } catch (PDOException $e) {
> //TODO: убрать при переносе на сервер, строка только для отладки
> echo '<p>' . $query . '</p>';
Ты собрался catch и echo ставить после любой функции, которая может выкинуть исключение? Это ведь будет почти каждая функция в программе. И зачем ты выводишь сообщения? Какая польза посетителю твоего сайта от непонятных сообщений на английском?

Вообще, PHP по умолчанию сам выводит на экран сообщение при выбрасывнии исключеия. Ты зачем-то пытаешься повторить то, что PHP и так умеет делать по умолчанию (если включено отображение ошибок).

Тебе надо разобраться с исключениями.

https://github.com/grigoryMovchan/auth/blob/auth_mvc/app/core/Model.php#L43
> switch ($type) {
Свитч сделан не очень правильно. Если передать в качестве type неправильное значение (например, из-за опечатки), то твой код притворятся что все в порядке, вместо того, чтобы сообщить тебе что ты передал неправильное значение. Так ошибку в коде придется искать намного дольше.

Вообще, это плохая идея сделать одну функцию с вариантами выбора. Надо тогда делать N функций, на каждый вариант свою.

https://github.com/grigoryMovchan/auth/blob/auth_mvc/views/auth/authForm.php
В шаблонах лучше использовать версии операторов с двоеточием, а не фигурными скобками.

> if (isset($error)) {
Это плохой подход. Если у тебя переменная может быть, а может не быть, то очень неудобно писать код.

https://github.com/grigoryMovchan/auth/blob/auth_mvc/views/auth/authForm.php#L12
> @$_POST['login']
@ неправильно тут использовать (и вообще неправильно использовать). Оно подавляет вообще любые ошибки, например, если ты опечатаешься в названии $_POST.

Также, тут XSS.

Также, view не должен лезть в POST-данные. Это из-за того, что ты пока не научился разделять код на отдельные независимые действия. Должно быть так:

- получить данные из POST
- сделать с ними что-ниудь
- проверить их
- ...
- вывести форму

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

Тебе бы стоило сделать задачу на Вектор, если ты ее не делал. Она в том числе пытается научить этому разделению на части.
Ответы: >>956891
Аноним 2017/03/10 00:34:25  №950263 526
>>949975

В твоем коде XSS. Почитай урок https://github.com/codedokode/pasta/blob/master/security/xss.md

>>949921

Файл помещаем на диск, после этого в таблицу - относительный путь к нему. Для уменьшенной картинки можно либо формировать путь из пути к основной, либо хранить в базе оба пути.

Всегда надо сначала сохранять файлы, а только потом записывать в БД, чтобы не было такого, что запись в Бд есть, а файла нет. Удалять в обратном порядке.

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

Так как у тебя к записи можно приложить несколько картинок, нужна отдельная таблица для них.

Еще какие-то полезные вещи могут быть в комемнтариях к задаче про файлообменник в ОП посте.

>>949786

Скорее всего ты заходишь не на свой сервер. Если у тебя серый IP (10.xxx, 192.168.xxx, 172.16.xxx), то он действует только в пределах локальной сети.

>>949682

Я хотел оптимизировать верстку для мобильных устройств, но руки пока не дошли.

Насчет переноса, я тоже все хочу перенести сайт хотя бы на github pages, но руки не доходят.

Насчет архивов - в ОП посте есть ссылка на rghost, там какой-то старый архив есть.

>>949681

Мануал это больше справочник, а не учебник.

>>949650

Файл .htaccess нужно настроить. Напиш, что именно тебе нужно. Скорее всего перенаправлять все запросы на index.php
Ответы: >>950283 >>950458 >>950542
Аноним 2017/03/10 00:34:43  №950264 527
>>949644

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

Можно делать свои исключения и делать у них дополнительные поля, но это на тот случай если тебе надо потом их извлекать. Если не надо, то пиши все в сообщении.

>>949636

Для отладки можно использовать логгирование. Или показывать подробности ошибки только на локальном сервере.

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

>>949618

Это (CMS/фрйемворки) просто разные вещи. В бизнесе кстати тоже что-то похожее есть - франшиза называется.


>>949614

CMS это система, позовляющая сделать сайт с минимумом или без программирования. Для типовых сайтов. Все настраивается через админку мышкой.

>>949613

Для 2 вариантов вообще логично true/false использовать.

>>949612

тут есть варианты, что возвращать:

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

>>950235

Папка public это корневая папка сервера, в которой он ищет файлы при обращении к нему.
Ответы: >>950756
Аноним 2017/03/10 00:44:49  №950270 528
>>950235
Бля, это ОООЧЕНЬ смешная картинка. В голос ржал

>>950215
Можешь скинуть остальные задания? У меня фейковый пдф не хочет грузиться, а интересно проешать.
Ответы: >>950289 >>950550
Аноним 2017/03/10 01:09:40  №950283 529
>>950263
>В твоем коде XSS. Почитай урок https://github.com/codedokode/pasta/blob/master/security/xss.md
>
Понял, спасибо. Тогда так
article.php?id=<?php echo htmlspecialchars($article['id'], ENT_QUOTES); ?>

Не знал, что надо фильтровать любые данные, думал только те, которые можно подставить через get или через формы. И сейчас честно говоря пока не понимаю зачем. Если у меня допустим эта переменная лежит в базе (и у этого поля тип INT), то это только чтобы перестраховаться на случай, если злоумышленник влезет в базу или есть еще какие-то способы подменить значение таких переменных?
Аноним 2017/03/10 01:21:15  №950289 530
hint.jpg (118, 1236x644)
644x1236
>>950270
МММ... какие остальные? Если ты имеешь в виду что тебе мешает эта тупая форма на экране, то вот тебе хинт.

Естественно проверить их нельзя никак, увы.
Аноним 2017/03/10 03:13:22  №950318 531
2.PNG (42, 894x101)
101x894
Снимок.PNG (12, 1106x111)
111x1106
PHPч, ПАМАГИ! Я заебался. Использую XAMPP для функций апача и MySQL, у него для работы с БД (MySQL) встроенный phpMyAdmin. Как нужно корректно определять кодировку при создании БД в phpMyAdmin в браузере, чтобы непосредственно на моём сайте, который вытаскивает данные из MySQL кириллица отображалась нормально, а не "??????"?
Нужно указывать сравнение или выбирать какую то конкретную кодировку?
Алсо, я видел в интернете на десятках источников предлагают непосредственно в PHP при каждом соединении с БД устанавливать кодировку на сессию, но разве это выход? Это ж накладные расходы по времени при каждом соединении.
Ответы: >>950407
Аноним 2017/03/10 04:34:21  №950328 532
>>949829
Прости, анон, что не написал вчера и, скорее, всего, не напишу сегодня. Просто Я ДОЛЖЕН ПРОИЗВЕСТИ ИНВЕНТАРИЗАЦИЮ ВЫБРОСОВ ВРЕДНЫХ ВЕЩЕСТВ В АТМОСФЕРНЫЙ ВОЗДУХ.
>>949875
У нас школа другого плана.
>>949876
Да я вообще хотел сделать сайт на укозе каком-нибудь, кому какая разница? Но нет, директор хочет сайт на домене второго уровня, и сам сайт заказал у каких-то левых типов.
Ответы: >>950356
Аноним 2017/03/10 07:30:32  №950356 533
>>950328

да ничего, пиши когда время будет. Я тоже тут увяз в лаборатории.
Аноним 2017/03/10 10:17:01  №950407 534
1.jpg (145, 1252x621)
621x1252
2.jpg (131, 1036x643)
643x1036
Аноним 2017/03/10 11:00:38  №950424 535
>>950244
Можешь немножко отсыпать статей?
Аноним 2017/03/10 12:30:00  №950458 536
>>950263
>Файл помещаем на диск, после этого в таблицу - относительный путь к нему. Для уменьшенной картинки можно либо формировать путь из пути к основной, либо хранить в базе оба пути.
>Всегда надо сначала сохранять файлы, а только потом записывать в БД, чтобы не было такого, что запись в Бд есть, а файла нет. Удалять в обратном порядке.
>Так как у тебя к записи можно приложить несколько картинок, нужна отдельная таблица для них.
>Еще какие-то полезные вещи могут быть в комемнтариях к задаче про файлообменник в ОП посте.
В общем, понятно. Буду делать таблицу.
Аноним 2017/03/10 14:24:05  №950542 537
>>950263
>Файл .htaccess нужно настроить. Напиш, что именно тебе нужно. Скорее всего перенаправлять все запросы на index.php
Задачка про студентов.
Аноним 2017/03/10 14:30:17  №950550 538
>>950215
Вот ты не вбросил текст заданий и зря - мне попались другие. Твоё 3-е на JS в одну строку:
let third = (str) => str.concat('_').match(/.{2}/g);
https://jsfiddle.net/ans4w1q1/
По второму: непонятно почему ты запрещаешь использовать float/double - в PHP есть функция is_numeric. Твоё первое задание не понял.

>>950270
В исходном коде страницы (Ctrl+u в Firefox) можно найти задания.
Но я посоветую зайти хотя бы на codewars - там задания в меру сложные, но без олимпиадного задротства как на codeforces.
Аноним 2017/03/10 14:31:40  №950551 539
Кстати, я недавно видел статью адепта реакта, так он пел что MVC - все , пойте отходную, что веб эволиционировал на новую ветвь и что mvc - крик неондертальца которого словили кроманьельцы и режут его на ремни.
Ответы: >>950553 >>950571
Аноним 2017/03/10 14:33:01  №950553 540
>>950551
Хуле фронточервь может о вебе в целом знать?
Аноним 2017/03/10 14:54:29  №950571 541
>>950551
И что он там взамен предлагает? MVC в вебе штука настолько удобная, что я вот никак не пойму какие там альтернативы могут быть.
Ответы: >>950577 >>950579
Аноним 2017/03/10 14:55:11  №950574 542
fetchAll(PDO::FETCH_CLASS, 'Student') – ругается на конструктор, так как все свойства, кроме id обязательны (он не нужен при регистрации), так вот как этого избежать? конструктор нужен в других случаях, если все поля на = null, то появляется уязвимость в других случаях. Знаю про | PDO::FETCH_PROPS_LATE и третий парапетр у fe