Да, анон, ты не ослышался. Ввиду некоторых щекотливых обстоятельств я скоро буду вынужден прекратить свою скромную деятельность в этом разделе.
Итак:
Добро пожаловать. В этом треде мы изучаем язык PHP (а также JS/CSS/HTML/SQL), решаем задачки и даже делаем простые сайты! Зачем? Кто-то хочет научиться программировать, кто-то - делать сайты, кто-то - просто размять мозги и заняться чем-то полезным.
Это тред для начинающих. Не написал за свою жизнь ни одной программы? Ты наш человек.
Устанавливать пока что ничего не требуется, разве что редактор кода вроде Sublime Text 3, Notepad++, Netbeans PHP или PhpStorm (необязательно).
Правила: ведем себя воспитанно, помогаем новичкам, постим ссылки на решения задачек, ОП их проверяет и дает советы и замечания. ОП отвечает даже на самые нубские вопросы. ОП заходит где-то раз в день, не жди его, решай задачки дальше.
У нас есть уроки по основам PHP, они собраны и выложены по адресу http://archive-ipq-co.narod.ru/ Это учебник для изучающих с нуля, то есть если ты вообще ничего не знаешь, то надо начать с него. Он простой и понятный (по крайней мере в начале). Там есть задачи, их надо решать обязательно (чтобы стать программистом, надо писать код — иначе никак). Пости ссылки на решения в тред, мы их проверим, напишем замечания и дадим советы по улучшению.
Если не знаешь как решать, запости код, напиши в каком месте остановился и попроси подсказку.
Учебник дает основы языка PHP, но чтобы делать сайты, этого недостаточно. Если ты его прошел, то надо переходить в более серьезным задачкам, которые научат тебя как выдавать страницы в браузер, работе с таблицами в БД, работе с формами, MVC.
Вот небольшой туториал по тому как начать использовать PHP на сервере для отдачи странички в браузер: https://php.net/manual/ru/tutorial.php Увы, уроков плавно подводящих к тому, как сделать задачи выше, пока нет, так что если что, задавай вопросы.
Решения задач лучше показать мне, особенно на ООП,так как сам ты вряд ли увидишь все ошибки. Пости свой код на гитхаб и вкидывай ссылку в тред по мере решения. Я прокомментирую и укажу на ошибки.
Также, у нас есть задачи которые позволят тебе изучить или подтянуть до нормального уровня знания JS/HTML/CSS/SQL. Решай их параллельно с задачами выше.
Подскажи сайты для поиска работы, я не умею гуглить? brainstorage.me, geekjob.ru, hh.ru Нужен ли ООП, фреймворки, MVC? — Да, однозначно. Посмотри любую вакансию. Сайт опять упал!!!!! — Не паникуй, а открой http://rghost.net/45000175 Оформляй код аккуратно!!! — например пропусти через phpformatter.com . Также, если ты пользуешься IDE вроде PhpStorm, Netbeans, Eclipse, то в них эта опция встроена, подробнее: https://gist.github.com/codedokode/8759492 ОП, сделай за меня мою работу или домашнее задание? — Это конечно, хорошая идея, но нет. Где искать работу и заказы — hh.ru, geekjob.ru, brainstorage.me, fl.ru, odesk.com. Имей в виду, что кроме фриланса есть еще постоянная удаленная работа (remote job) когда тебе не надо тратить время на поиск заказов и переговоры с неадекватными заказчиками.
Клуб любителей РНР #50 последнийОП09/05/15 Суб 00:32:03#2№475690
Не понял. Что случилось, оп? Я хоть к тебе и не захожу, сам в питонотреде теперь, но ты мне показал дорогу именно в легкое и применимое в реальных делах программирование.
Не понял, а где перекат в прошлом треде? И почему ОП вынужден скоро прекратить свою деятельность? Мне еще столько нужно было сделать, файлообменник, рестфул сервис для превьюшек, что там еще? Сколько у меня времени?
А я как раз вкатываюсь в пхп. Нормально. Удачи, Оп, ты хороший человек. Надеюсь с учебником ничего не случится или начать резервное копирование всего, что в оп посте?
Начал в прошлом феврале. Сначала основы ПХП, JavaScript, этот тред, файлообменник на Слиме, потом Yii учил.
В конце прошлого лета устроился кодером в контору, клепавшую говносайты на Yii. Работал там, параллельно учил Symfony 2? продвинутое ООП (паттерны, вся фигня) теорию и практику баз данных с упором на MySQL. Заодно прошелся по верхам по MondoDB, чтоб про NoSQL иметь представление
Пару месяцев назад перешел на нормальную работу, где всё по уму. Кучка собственных проектов на Symfony2, ООП, RabbitMQ в ядре системы, автоматизированне тестирование, PHPUnit, все как положено. Ну и зарплата соответственно боль-мень.
Итого чуть больше года.
Все основы программирования, к моменту начала освоения ПХП я уже знал, так что мне было явно проще. Чуток знал C со времен универа, ну и всякую фигню, вроде бейсика-паскаля-делфи в своё время по верхам учил.
Конкретно на веб ушло чуть больше года, от момента когда начал, до того момента, когда смог устроиться мидлом на норм работу. Но задрачивал я конкретно, это был пиздец-год.
Совет - делай собственные проекты и каждый раз бери для них стек технологий, который ты не знаешь. У меня вначале был Slim+MySQL, Потом Yii + много JS+AJAX-а + PostgreSQL. Потом Silex + MongoDB + WebSockets + Ratchet + ZeroMQ.
Вначале всё кажется пиздецом, который невозможно осилить, но упроство и труд всё перетрут. Неясно - читай манула по 20 раз, ищи примеры кода в инете, разбирай, запоминай, и будет успех.
Кстати ОП, может перекатишь учебник на Github Pages? Там никакой рекламы нет, странно что учебник не там еще, ты ведь гитхабом пользуешься. А с народа редирект поставишь.
>>475689 Проблема со временем в базе данных. Первоначально я поставил так что время добавлялось в базу данных автоматически для каждой записи, это было удобно. Но когда дошёл до интерфейса для обновления данных в БД, то понял что вариант не лучший. После этого решил добавлять время в базу данных из вне, таким вот методом
$dt = time();
И потом добавляю переменную $dt в запрос, но в итоге получается то что в базу данных добавляется такая вот строка 00-00-000 и если нажать по этой ячейке для редактирования где такая запись мышкой через пхп майадмин то автоматически появляется дата. Не понимаю почему это так работает и как лучшим образом добавлять дату в базу данных?
Это способ которым пользуются программисты по умолчанию. Ты думаешь другие программисты с рождения все знают или знания им во сне приходят? Нет, они приходят от чтения мануалов и кода.
Если ты не любишь читать мануалы, это нормально. Они не всегда идеально написаны. Но читать все равно придется.
> я то что в базу данных добавляется такая вот строка 00-00-000 В базу данных дату надо вставлять так INSERT INTO t(d) VALUES('2015-01-01 12:00:00') то есть как строку в особом формате
> и если нажать по этой ячейке для редактирования где такая запись мышкой через пхп майадмин то автоматически появляется дата Это он наверно просто по умолчанию ставит сегодняшнюю дату.
Есть база данных пикрилейтед. Есть код: $db = mysql_connect('сервер', 'логин','пароль'); mysql_select_db("база" ,$db); $sql = mysql_query("SELECT `des` FROM `Index` WHERE `id` > 0" ,$db); $res = mysql_fetch_row ($sql); print_r($res);
По идее, код должен вывести массив со всеми значениями des. Но на практике, выводит Array ( [0] => One ) Почему так происходит?
>>475689 Стоит ли быть в пхп? Реально ли потом перекатиться к примеру в андройд\яву? Правда что пъпъ разжижает мозги? Только честно, я сейчас на распутье, есть вариант кодинга на пиэчпи, боюсь что это кривая дорожка.
>>476597 Сори бро, я смотрю на зп и вижу что в Ява/андройд средние зп сравнимы с пхп, а верхние выше в полтора и даже более раз. Язык - это средство и важно понять ликвидность, чему у тебя пуканбомбан?
Планирую создавать свой сервис. Суть такова - есть страницы, доступные всем сразу. Есть страницы, доступные зарегистрированным пользователям. И есть страницы, доступные только администратору. Знания PHP слабые. Вопрос: стоит пилить на чистом PHP или учить какой-нибудь фреймворк?
Я может быть не по адресу, но такой вот вопрос: Есть веб-страница. На ней кнопка "показать надпись". Нажимаем кнопку - в нужном месте страницы появляется текст. Без перезагрузки страницы. Это аяксом делается? Или яваскриптом? Или всё же можно реализовать голым пхп? Как?
оп, почему это последний тред? сори, если где-то отвечал, лень читать весь тред и еще, как на счет набрать несколько юниоров для обучения на определенных условиях?
fpdf ругается на $pdf->Image($file_name), мол Warning: getimagesize(014288094455770.jpg) [function.getimagesize]: failed to open stream: No such file or directory in A:\home\test1.ru\www\m\fpdf.php on line 1213 FPDF error: Missing or incorrect image file: 014288094455770.jpg
Что я делаю не так? Если банально указать имя файла - работает. Но если брать имя в цикле во время загрузки, ругается.
Имей в виду что при запуске из PHP внешей программы ты должен отслеживать ее код завершения и сохранять вывод и сообщения об ошибках, чтобы можно было потом легко найти причину проблем. те кто запускают внешние комадны через стандартные функции вроде exec просто быдлокодеры которым все равно сработала ли команда или нет и что она вывела.
Ты не указал полный путь к картинке значит она ищется только в текущем каталоге. Увидеть текущий каталог можно через echo getcwd(), поменять через chdir.
PHP работает на сервере, генерирует HTML-код страницы, отдает ее браузеру и завершается. Может ли он что-то на ней потом поменять? Нет, страницей управляет теперь браузер.
Яваскриптом можно это сделать. И судя по тому что ты путаешь аякс и яваскрипт, тебе стоит начать с самых основ и почитать этот чудесный учебник: learn.javascript.ru
Советую найти готовую CMS с такими возожностями, может быть вордпресс с каким-нибудь плагином. Ну или освоить Yii 2. Вручную ты наворотишь быдлокод в котором потом будет не разобраться.
>>477149 >Яваскриптом можно это сделать. И судя по тому что ты путаешь аякс и яваскрипт, тебе стоит начать с самых основ и почитать этот чудесный учебник: learn.javascript.ru Решил проблему. Отписал в >>477244, как именно.
На некоторых сайтах количество страниц меняется в зависимости от базы данных. Типа если 20 товаров и по пять на страницу, то будет четыре страницы вида www.domen.ru/catalog/4, а если сорок товаров, то будет ещё и www.domen.ru/catalog/8. Откуда берутся эти дополнительные страницы? Как они генерируются? И как ставится нумеровка снизу, указывающая на количество доступных страниц и текущую страницу?
Симфони 2 хороший современный фреймворк. Во времена Симфони 1/Zf1 зенд был гораздо популярнее, а когда вышли вторые версии, все перекатились на симфони. ZF1/2 ты скорее встретишь в старых приложениях (впрочем ZF1 тоже был не такой плохой. Он лучше 95% PHP кода и других CMS/фреймворков тех времен)
Вчера был на собеседовании. Спрашивали хрень, спросили слышал ли я о MVC, я рассказал о модели, спросили еще об том, как соеденить значения массива в строку, я дурак, забыл об implode и сказал, что через foreach можно, но да ладно, не ошибся. Спрашивали работал ли я з JS и смогу ли я натянуть верстку на шаблон. Попросили скинуть какие-то исходники, а я все исходники из обучения просрал, был только плагин на WP и пара задачек нач. олимпиадного уровня.
>>477938 Не решал дополнительные задачки, кроме, как на граф, нашел другого толка задачи, их, кстати, тоже стоит добавить оп-у в его учебник или на gits, они просто интересные. Я вообще около 2-3 месяцев php учил, дальше заинтересовался python/django откуда и узнал про mvc, она там чудесно реализованна, дальше немного по jave и spring-у прошелся, а потом знакомый подкинул работы по php и я повторив все это начал искать что-нибудь, надеюсь, что все ок будет. Он утонул очень.
Сразу предупрежу что не хочу разводить холивар, но все же какую IDE ты используешь, анон? Есть дикое желание перекатиться из Sublime Text, ну или не совсем перекатиться, в сторону чего-то более мощного, функционального. Что посоветуешь? Интересуют кроссплатформенные решения, но главное под Windows и Linux, хотя если что-то действительно годное, хватит и под Linux.
>>478241 Это я и был, маня. А ты даже не в состоянии загуглить это и по первой же ссылке найти ответ, так что обтекай. google://bootstrap full height sidebar Хотел тебе годноту спалить, но нет пожалуй не буду раз ты такое ленивое хуйло.
Тут надо понимать что Yii/lavarel против Symfony — это фреймворки разного уровня.
Есть микрофреймворки для крошечных проектов или каких-нибудь API: Slim, Silex Есть средние фреймворки для «обычных» сайтов: Yii/lavarel Есть тяжеловесы для сложных проектов: Симфони 2 (раньше еще ZF использовали)
В ваших Юи/Лаварелях нет ни нормального ORM, ни твига, вообще ничего нет. Как там строить сложные связи и отношения в модели, непонятно.
Потому кривая упоминаний в гугле мало что говорит. Ну да, средних проектов больше, чем тяжелых, ок.
>>478227 Только PHPStorm. Это тёмно-серое говно на жабе с регулярностью в 5-6 дней виснет намертво на моей инвалидке, жрёт сотни памяти, не умеет в $this->{__FUNCTION__}(); , но щитоподелать, лучше ничего нет и не было.
Я пробовал всё и долго: блокнот, комодо, php expert editor, notepad++, nano, vim, mcedit, Zend Studio, просто эклипс, идею с плагинами, сетевые бобы, sublime и бог-знает что ещё о чём вслух стыдно сказать.
Иди нахуй! Выкинь свои мозги на улицу и просто купи лицензию на PHPStorm и забудь про всё остальное. Нет денег на основной инструмент? Иди нахуй, ты тогда не программист, а хуй-знает-что!
> не умеет в $this->{__FUNCTION__} Но зачем так писать? ни разу в жизни не видел такого
Алсо мне нравится саблайм за минималистичность, хороший интерфейс и скорость. Автодополнения нет? У меня голова для этого есть (ну то есть лучше бы оно было, но не ценой тормозов). Зато у него нет ни одной панели инструментов и быстрый мощный поиск по файлам который я использую постоянно. Плюс мультикурсоры, нечеткий поиск файлов/имен и запускается за пару секунд (тем более что он иногда падает и быстрый перезапуск помогает).
>>478304 > тем более что он иногда падает Что за ОС? Ни разу за года 2 использования(а может даже больше, точно сейчас не скажу) не упал что 2й, что 3й.
Падают расширения в отдельном процессе (и надо перезапускать редактор так как без второго процесса даже некоторые горячие клавиши не работают).
В каких-то случаях падал сам редактор, например если во время поиска по файлам запустить еще один поиск (я не уверен что дело в этом так как это всего 1 раз наблюдалось) или от сложных регулярных выражений в поиске.
Ты наверно просто не очень активно использовал если не сталкивался.
>>478318 > поиска по файлам Ты имеешь ввиду поиск подстроки в файле? Всегда юзал конструкцию, даже не знаю где у sublime такой функционал. [CODE] grep -i -n "string" `find -name "*.php"` [/CODE]
> Всегда юзал конструкцию, даже не знаю где у sublime такой функционал. Это значит что ты редко и мало пользуешься поиском потому что иначе ты бы заметил насколько убог греп:
— нет автоматического игнорирования всяких служебных папок (надо дописывать руками) — убогий синтаксис регулярок, нет например ассершенов вроде (?! ... ) — синтаксис для выражений в find неудобный и в нем легко ошибиться (попробуй добавь еще несколько условий, например исключения для папок) — работает медленнее чем в саблайме (я не знаю, как он это делает, но по моему и саблайм и php storm ищут быстрее на больших проектах, может индексы какие-то используют) — результат поиска бесполезен. Ты не можешь клинкуть и перейти к файлу и что-то исправить или посмотреть окружающих код. — нет опции замены — ты подставляешь find через косые кавычки. на пробелах или других спецсимволах имя файла передастся неправильно. ты бы мануал по башу почитал прежде чем им хвастаться, неуч.
grep годится только для примитивных случаев вроде поиска строки где-то на сервере в куче файлов. Поиск в IDE и редакторах мощнее и удобнее.
Ну и скорость: нажать Ctrl + Shift + F и ввести искомое слово гораздо быстрее чем набирать длинную команду (да можно сделать шелл скрипты но ты ведь его не сделал?)
>>478300 >Иди нахуй! >Выкинь свои мозги на улицу и просто купи лицензию на PHPStorm и забудь про всё остальное. Пост реклама PHPstorm. Весь тред создан только для их блядской рекламы. На PHP пишут только манагеры PHPstorm Расходимся.
А если серьёзно - захотелось попробовать, ибо также как и тот анон перепробовал всё, и всё является говном.
Почему в шапке в рекомендациях книг{ Профессиональное программирование на PHP Джордж Шлосснейгл} ? Я понимаю что книга хороша, но... давайте честно она для очень продвинутого человека. Ньюфагу, а именно на них направлена шапка, она не подойдёт. Ньюфаг даже не поймёт о чём она.
Задание W4.2 Тюремная рулетка. Роллим. https://ideone.com/bAH8h8 там походу изначально запускается мой сохраненный результат. Пистон. Я так понимаю вам нужно самим запустить
потому что книги для ньюфагов на русском обычно плохие, старые, код в них с ошибками и уязвимостями. Но основы можно изучить например по нашему учебнику, а затем уже браться за Шлосснейгла.
Сделано верно. В Switch стоит всегда добавлять default: c выбросом исключения (так как ты пока их не изучил то используй просто die("Неправильное значение: $x")) чтобы отлавливать ошибки вроде случайно пропущенной цифры или неправильного переданного значения. Иначе они могут остатться незамеченными.
ребят, подскажите в чем может быть проблема? У меня из дома двач недоступен пишет вроде бы вот так: forbidden 403 ngix 1.7.3 Это провайдер меня обламывает? Не могу после работы наш тредик почитать теперь, а тут не до этого Пишу с работы пока все ушли на обед
>>478709 Тебе кто выпал, оп? Алсо, спасибо за проделанную работу. Очень интересно читать. Сколько глав там всего? Много? Начал изучение вчера ночью, надеюсь чему-нибудь научиться. Хорошо что знаю другой язык, помогает. Алсо пхп чутка смахивает на обычный линуксовский баш. Короче спасибо. много людей на твой сайт заходит?
Хз куда такой вопрос постить, попробую для начала задать здесь: есть сайтик, на который будут переходить юзеры из Вконтакта. Как (возможно ли вообще?) узнать id юзера, который перешёл на мой сайт? Кликджекинг не предлагать.
Доброго времени суток, подскажите пожалуйста, как конкретно заполнить формы типа "имя", "номер телефона", "email", "комментарий" и реализовать их отправку. HTML и CSS уже сделаны.
Привет пхп аноны. Взялся делать "простую задачу", только условие переделал под себя. Собственно пхп будет только получать запросы от ангуляра, взаимодействовать с бд и плеваться жсоном. А вместо абитуриентов - рецепты. Все хочу сделать максимально асинхронно, будет много фильтров-чекбоксов.
Для бд будет все по дата маперу, плюс синглтон коннект (нужно ли?). Будут классы для приема (с фильтрами), отправки, конверта в json. Или описать конверт как метод отправщика? Связь будет с помощью REST. Для этого есть какие-то паттерны, которые к тому же с ангуляром дружат? Или может небольшой фреймворк только для этих целей?
Ну а может есть особые паттерны для асинхронных сайтов? Хочется сразу иметь возможность невообразно расширять проект, без необходимости потом сто раз переделывать. В серьезные пхп фреймворки пока нет мотивации лезть, боюсь просто забью.
постраничный вывод постов. т.е. посты должны выводится на второй странице после 4ого поста. Нажимаю на вторую страницу - ничего не открывается? Что не так? Вот ссылка моя. http://deuzsite.zz.mu/index.php?page=1
>>479218 >максимально асинхронно Просто сделай так чтобы работало. К тому времени, когда тебе понадобится асинхронность у тебя не останется подобных вопросов.
>невообразно расширять проект Манямир. Для этого нужен совсем другой уровень мышления. Ты же пишешь реальный проект, а не библиотеку. Просто следуй чётким задачам.
>>479219 ОП - хуй, который ни одной книги по PHP в жизни не прочитал. Чтобы скрыть свою убогость, он стал предлагать курсы нубам, чтобы одновременно прокачивать ЧСВ и дополнять пробелы в своих знаниях. Теперь он вышел на совершенно новый уровень окукливания в своём манямирке и ему не нужны собеседники.
Это не значит, что тут не осталось ровных пыхомакак, которые секут что к чему.
>>479470 Даже на петушиной хате своя иерархия, как ты видишь.
Что может являться для человека достаточным основанием заявить, что он "знает" некий инструмент для создания программного обеспечения? Почему одни люди обладают авторитетом, а другие нет? Что вообще является авторитетом в области создания ПО?
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { echo "Файл корректен и был успешно загружен.\n"; } else { echo "Возможная атака с помощью файловой загрузки!\n"; }
Если убрать серый фон под сайдбаром, то внезапно окажется что растягивать его не требуется, а на странице станет чуть просторнее. Фон не требуется, так как область меню отделена от остальной страницы полями.
Так, растягивание можно сделать абсолютным позиционированием или добавлением странице фоновой картинки с серым цветом слева.
Также, я бы чуть-чуть уменьшил расстояние между ссылками в сайдбаре, чтобы было видно, что они вместе, а не оторваны друг от друга. Но не слишком, чтобы не было тесно.
Для PHP бекенда тут хорошо подойдет микрофреймворк Slim или Silex. Они простые и минималистичные и хорошо подходят для создания АПИ.
Кстати, если ты делаешь REST АПИ то обрати внимание на Swagger — он поможет сгенерировать для твоего АПИ читабельную документацию с возможностью прямо с нее тестировать запросы: http://swagger.io/ Она выглядит примерно так: http://petstore.swagger.io/
Не знаю, разберешься ли ты с ним, но для PHP есть например такая штука http://zircote.com/swagger-php/annotations.html которая читает аннотации из комментариев в твоем коде и строит из них нужные данные для swagger, то есть отдельно описыват твое API не требуется, нужны только аннотации на моделях и на контроллерах.
> Для бд будет все по дата маперу, плюс синглтон коннект (нужно ли?). Синглтон это антипаттерн. Ничто не мешает тебе в том месте где создаются мапперы сразу передать в них объект PDO. зачем вообще нужен класс «коннект»? Какой новый функционал он дает?
Более того, если ты используешь slim/Silex, фреймворк там предоставляет возможность передать этот PDO куда нужно.
> Будут классы для приема (с фильтрами), отправки, конверта в json. По моему как-то сложно. Тут хватит контроллера, который принимает запрос, вызвает маппер и возвращает ответ. В случае использования Slim/Silex контроллер это просто функция из нескольких строчек. Ну и нужны мапперы и модели разумеется.
> Или описать конверт как метод отправщика? Можно сделать у модели рецепта метод «превратить в массив», а в контроллере превращать массив в json и отдавать.
> Связь будет с помощью REST. Для этого есть какие-то паттерны, которые к тому же с ангуляром дружат? Или может небольшой фреймворк только для этих целей? Есть еще Restler, но я с ним не работал: https://github.com/Luracast/Restler
> Ну а может есть особые паттерны для асинхронных сайтов? А что в твоем сайте асинхронного, мне интересно? У тебя можно в процессе удаления записи на сервере редактировать ее на клиенте? Это скорее минус чем плюс.
> Хочется сразу иметь возможность невообразно расширять проект, без необходимости потом сто раз переделывать. Используй MVC, библиотеки и фреймворки вместо велосипедов.
Итак:
Добро пожаловать. В этом треде мы изучаем язык PHP (а также JS/CSS/HTML/SQL), решаем задачки и даже делаем простые сайты! Зачем? Кто-то хочет научиться программировать, кто-то - делать сайты, кто-то - просто размять мозги и заняться чем-то полезным.
Это тред для начинающих. Не написал за свою жизнь ни одной программы? Ты наш человек.
Устанавливать пока что ничего не требуется, разве что редактор кода вроде Sublime Text 3, Notepad++, Netbeans PHP или PhpStorm (необязательно).
Предыдущий тред был тут:
Правила: ведем себя воспитанно, помогаем новичкам, постим ссылки на решения задачек, ОП их проверяет и дает советы и замечания. ОП отвечает даже на самые нубские вопросы. ОП заходит где-то раз в день, не жди его, решай задачки дальше.
У нас есть уроки по основам PHP, они собраны и выложены по адресу http://archive-ipq-co.narod.ru/ Это учебник для изучающих с нуля, то есть если ты вообще ничего не знаешь, то надо начать с него. Он простой и понятный (по крайней мере в начале). Там есть задачи, их надо решать обязательно (чтобы стать программистом, надо писать код — иначе никак). Пости ссылки на решения в тред, мы их проверим, напишем замечания и дадим советы по улучшению.
Если не знаешь как решать, запости код, напиши в каком месте остановился и попроси подсказку.
Учебник дает основы языка PHP, но чтобы делать сайты, этого недостаточно. Если ты его прошел, то надо переходить в более серьезным задачкам, которые научат тебя как выдавать страницы в браузер, работе с таблицами в БД, работе с формами, MVC.
- Простая, но полезная задача сделать список студентов: https://github.com/codedokode/pasta/blob/master/student-list.md
- Более сложная задача сделать файлообменник на микрофреймворке Slim: https://gist.github.com/codedokode/9424217
- Еще более сложная и долгая задача на Yii/Yii2: https://gist.github.com/codedokode/8733007
- После нее можно изучать автоматизированное тестирование
- Если ты все решил, переходи к Symfony 2/Doctrine 2
Чтобы делать эти задания, тебе надо установить Апач + PHP (можно заодно сразу и MySQL) на компьютер. Вот полезные инструкции:
https://gist.github.com/codedokode/10774100
https://gist.github.com/codedokode/7054af4a03865c4cc863
Может тебе понадобится пользоваться командной строкой, вот гайд https://gist.github.com/codedokode/10539568
Вот небольшой туториал по тому как начать использовать PHP на сервере для отдачи странички в браузер: https://php.net/manual/ru/tutorial.php Увы, уроков плавно подводящих к тому, как сделать задачи выше, пока нет, так что если что, задавай вопросы.
Решения задач лучше показать мне, особенно на ООП,так как сам ты вряд ли увидишь все ошибки. Пости свой код на гитхаб и вкидывай ссылку в тред по мере решения. Я прокомментирую и укажу на ошибки.
Также, у нас есть задачи которые позволят тебе изучить или подтянуть до нормального уровня знания JS/HTML/CSS/SQL. Решай их параллельно с задачами выше.
- HTML/CSS: https://gist.github.com/codedokode/58ebc90bd006baf4b35c
- JS: https://gist.github.com/codedokode/ce30e7a036f18f416ae0
- Проверялка решений на JS: http://dkab.github.io/jasmine-tests/
- MySQL: https://gist.github.com/codedokode/10539213
Что почитать
- Мануал по PHP — http://www.php.net/manual/ru/langref.php
- Сайт phptherightway (перевод на русский: http://getjump.github.io/ru-php-the-right-way/ )
- По PHP: Профессиональное программирование на PHP Джордж Шлосснейгл
- По PHP: Мэтт Зандстра — PHP: Объекты, шаблоны, методики программирования
- JS: learn.javascript.ru
Подскажи сайты для поиска работы, я не умею гуглить? brainstorage.me, geekjob.ru, hh.ru
Нужен ли ООП, фреймворки, MVC? — Да, однозначно. Посмотри любую вакансию.
Сайт опять упал!!!!! — Не паникуй, а открой http://rghost.net/45000175
Оформляй код аккуратно!!! — например пропусти через phpformatter.com . Также, если ты пользуешься IDE вроде PhpStorm, Netbeans, Eclipse, то в них эта опция встроена, подробнее: https://gist.github.com/codedokode/8759492
ОП, сделай за меня мою работу или домашнее задание? — Это конечно, хорошая идея, но нет.
Где искать работу и заказы — hh.ru, geekjob.ru, brainstorage.me, fl.ru, odesk.com. Имей в виду, что кроме фриланса есть еще постоянная удаленная работа (remote job) когда тебе не надо тратить время на поиск заказов и переговоры с неадекватными заказчиками.