Это копия, сохраненная 14 июня 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Итак:
Добро пожаловать. В этом треде мы изучаем язык PHP (а также JS/CSS/HTML/SQL), решаем задачки и даже делаем простые сайты! Зачем? Кто-то хочет научиться программировать, кто-то - делать сайты, кто-то - просто размять мозги и заняться чем-то полезным.
Это тред для начинающих. Не написал за свою жизнь ни одной программы? Ты наш человек.
Устанавливать пока что ничего не требуется, разве что редактор кода вроде Sublime Text 3, Notepad++, Netbeans PHP или PhpStorm (необязательно).
Предыдущий тред был тут: >>468317
Правила: ведем себя воспитанно, помогаем новичкам, постим ссылки на решения задачек, ОП их проверяет и дает советы и замечания. ОП отвечает даже на самые нубские вопросы. ОП заходит где-то раз в день, не жди его, решай задачки дальше.
У нас есть уроки по основам 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) когда тебе не надо тратить время на поиск заказов и переговоры с неадекватными заказчиками.
преемника себе не нашёл?
можно ведь и по реже заходить сюда, не обязательно все бросать.
может оно даже к лучшему будет.
а в чем причина? думаю многим будет интересно знать.
Отписываюсь в эпичном треде, который помог мне перекатиться в программирование и удержаться на плаву в момент полного пиздеца всему вокруг.
Спасибо ОПу!
[CODE]ab+cd<=e*f[/CODE]
До этого имел опыт с другими языками? Какой был первый фреймворк? Твои советы уже не_совсем_новичку?
>>475913
Начал в прошлом феврале. Сначала основы ПХП, 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? Там никакой рекламы нет, странно что учебник не там еще, ты ведь гитхабом пользуешься. А с народа редирект поставишь.
Потому может сюда перекатимся если этот поддельный тред не исчезнет за это время.
Ну и где традиционный второй пост про оформление кода? любой завсегдатай треда знает что он всегда есть.
Проблема со временем в базе данных. Первоначально я поставил так что время добавлялось в базу данных автоматически для каждой записи, это было удобно. Но когда дошёл до интерфейса для обновления данных в БД, то понял что вариант не лучший. После этого решил добавлять время в базу данных из вне, таким вот методом
$dt = time();
И потом добавляю переменную $dt в запрос, но в итоге получается то что в базу данных добавляется такая вот строка 00-00-000 и если нажать по этой ячейке для редактирования где такая запись мышкой через пхп майадмин то автоматически появляется дата. Не понимаю почему это так работает и как лучшим образом добавлять дату в базу данных?
Это способ которым пользуются программисты по умолчанию. Ты думаешь другие программисты с рождения все знают или знания им во сне приходят? Нет, они приходят от чтения мануалов и кода.
Если ты не любишь читать мануалы, это нормально. Они не всегда идеально написаны. Но читать все равно придется.
>>476140
> я то что в базу данных добавляется такая вот строка 00-00-000
В базу данных дату надо вставлять так INSERT INTO t(d) VALUES('2015-01-01 12:00:00') то есть как строку в особом формате
Читай:
http://phpclub.ru/mysql/doc/datetime.html
http://phpclub.ru/mysql/doc/date-and-time-functions.html
> и если нажать по этой ячейке для редактирования где такая запись мышкой через пхп майадмин то автоматически появляется дата
Это он наверно просто по умолчанию ставит сегодняшнюю дату.
$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 )
Почему так происходит?
mysql_fetch_row возвращает один row в виде массива. Попробуй так.
while($res = mysql_fetch_row($sql)){
$result[] = $res;
}
print_r($result);
Стоит ли быть в пхп? Реально ли потом перекатиться к примеру в андройд\яву? Правда что пъпъ разжижает мозги? Только честно, я сейчас на распутье, есть вариант кодинга на пиэчпи, боюсь что это кривая дорожка.
Сори бро, я смотрю на зп и вижу что в Ява/андройд средние зп сравнимы с пхп, а верхние выше в полтора и даже более раз. Язык - это средство и важно понять ликвидность, чему у тебя пуканбомбан?
>Правда что пъпъ разжижает мозги? Только честно
Это новость для тебя, но это не новость для IT в целом.
Рисунок - из девяностых, времён ФИДО.
Дэвид Скляр и Адам Трахтенберг: «PHP — Сборник рецептов».
На английском и русском. Есть в Сети.
>Ввиду некоторых щекотливых обстоятельств я скоро буду вынужден прекратить свою скромную деятельность в этом разделе.
Господи, Иисусе, я знал, что этот день настанет!
Ага, значит логин идёт всё таки через куки!
Есть веб-страница. На ней кнопка "показать надпись". Нажимаем кнопку - в нужном месте страницы появляется текст. Без перезагрузки страницы. Это аяксом делается? Или яваскриптом? Или всё же можно реализовать голым пхп? Как?
>Вопрос: стоит пилить на чистом PHP или учить какой-нибудь фреймворк?
Возьми готовое, «изучать похапе» уже поздно, опоздал на 15 лет.
Не хочу тебя разочаровывать, но ты спросил в утонувшем треде, в котором уже никто не сидит. Спроси лучше в свежем.
Блин. У меня так всегда. Кривизна рук невероятная.
Я сейчас сам ковыряю. Если криво и говнокодом, то JS + php вполне могут заменить аякс.
FPDF error: Missing or incorrect image file: 014288094455770.jpg
Что я делаю не так? Если банально указать имя файла - работает. Но если брать имя в цикле во время загрузки, ругается.
if(isset($_FILES['documents'])){
$pdf = new PDF();
$pdf->AliasNbPages();
foreach($_FILES['documents']['tmp_name'] as $key => $tmp_name)
{
$file_name = $key.$_FILES['documents']['name'][$key];
\t$name\t = strip_tags($_FILES['upload_file']['name']);
$file_size =$_FILES['documents']['size'][$key];
$file_tmp =$_FILES['documents']['tmp_name'][$key];
$file_type=$_FILES['documents']['type'][$key];
\t$pdf->AddPage();
\t$pdf->Image($file_name);
move_uploaded_file($file_tmp,"./galleries".time().$file_name);
\t
}
$content = $pdf->Output('doc.pdf','F');
}else{
echo "<form enctype='multipart/form-data' action='index.php' method='POST'>";
echo "File:<input name='documents[]' multiple='multiple' type='file'/><input type='submit' value='Upload'/>";
echo "</form>";
}
FPDF error: Missing or incorrect image file: 014288094455770.jpg
Что я делаю не так? Если банально указать имя файла - работает. Но если брать имя в цикле во время загрузки, ругается.
if(isset($_FILES['documents'])){
$pdf = new PDF();
$pdf->AliasNbPages();
foreach($_FILES['documents']['tmp_name'] as $key => $tmp_name)
{
$file_name = $key.$_FILES['documents']['name'][$key];
\t$name\t = strip_tags($_FILES['upload_file']['name']);
$file_size =$_FILES['documents']['size'][$key];
$file_tmp =$_FILES['documents']['tmp_name'][$key];
$file_type=$_FILES['documents']['type'][$key];
\t$pdf->AddPage();
\t$pdf->Image($file_name);
move_uploaded_file($file_tmp,"./galleries".time().$file_name);
\t
}
$content = $pdf->Output('doc.pdf','F');
}else{
echo "<form enctype='multipart/form-data' action='index.php' method='POST'>";
echo "File:<input name='documents[]' multiple='multiple' type='file'/><input type='submit' value='Upload'/>";
echo "</form>";
}
>>476859
В сети пишут команда imagemagick умеет это:
http://stackoverflow.com/a/8955465
imagemagick также доступна как расширение для php и может это можно делать на самом php без вызова внешних программ.
Тут советуют более качественный вариант без перекодирования: http://unix.stackexchange.com/a/74341
Имей в виду что при запуске из PHP внешей программы ты должен отслеживать ее код завершения и сохранять вывод и сообщения об ошибках, чтобы можно было потом легко найти причину проблем. те кто запускают внешние комадны через стандартные функции вроде exec просто быдлокодеры которым все равно сработала ли команда или нет и что она вывела.
Сохранить вывод от внешней команды удобно библиотеками вроде Symfony Process: http://symfony.com/doc/current/components/process.html
Ты не указал полный путь к картинке значит она ищется только в текущем каталоге. Увидеть текущий каталог можно через echo getcwd(), поменять через chdir.
То есть программа пишет все правильно.
>>476840
На чистом php обычно пишут всякие быдлокодеры которым лень учиться. Остальные пишут на фреймворках или CMS.
>>476825
PHP работает на сервере, генерирует HTML-код страницы, отдает ее браузеру и завершается. Может ли он что-то на ней потом поменять? Нет, страницей управляет теперь браузер.
Яваскриптом можно это сделать. И судя по тому что ты путаешь аякс и яваскрипт, тебе стоит начать с самых основ и почитать этот чудесный учебник: learn.javascript.ru
У нас кстати есть задачи на JS.
>>476740
Советую найти готовую CMS с такими возожностями, может быть вордпресс с каким-нибудь плагином. Ну или освоить Yii 2. Вручную ты наворотишь быдлокод в котором потом будет не разобраться.
в микроскопе разглядывать процессор
Меня бесполезно спрашивать, я считаю, наоборот.
рнр гинирируит)
> какие докаательства
Обилие троллей зато хотя бы картинками тред разбавили
>>477396
Симфони 2 хороший современный фреймворк. Во времена Симфони 1/Zf1 зенд был гораздо популярнее, а когда вышли вторые версии, все перекатились на симфони. ZF1/2 ты скорее встретишь в старых приложениях (впрочем ZF1 тоже был не такой плохой. Он лучше 95% PHP кода и других CMS/фреймворков тех времен)
>>477394
Ответил в официальном треде
>>477540
Ответил в официальном
Ничоси! Давно его под винду делать начали?
>апача +php+mysql
Зачем тебе? Качай Winginx. Nginx+PHP+MySQL+PhpMyAdmin+Node.js+MongoDB. Одним экзешником, ставится без гемора.
Зачем мне эти костыли и лишний гемморой, когда я одним кликом ставлю на ноут это?
юзерскрипт в шапке закрепленного
Именно так.
Думаю, что если не возьмут
да хуй знает, потенцыал есть чутка вроде.
сколько проходил обучение, все задачки решил? что посоветуешь для продуктивного обучение не совесем новичку?
кстати лучше задай вопрос в оффициальный треат
Плохо дело с такими вопросами.
Не решал дополнительные задачки, кроме, как на граф, нашел другого толка задачи, их, кстати, тоже стоит добавить оп-у в его учебник или на gits, они просто интересные. Я вообще около 2-3 месяцев php учил, дальше заинтересовался python/django откуда и узнал про mvc, она там чудесно реализованна, дальше немного по jave и spring-у прошелся, а потом знакомый подкинул работы по php и я повторив все это начал искать что-нибудь, надеюсь, что все ок будет. Он утонул очень.
ООП учи, хоть его у меня и не спрашивали.
иди борща хлебни лох
Ну что Антош, 2015 год у нас динамический язык, нам не нужна строгая типизация, для этого мы пишем юнит тесты.
Начни с примитивного CRUD-приложения. Список (List), создать итем (Create), редактировать итем (Update), удалить итем (Delete).
Всегда любые фреймворки и новые языки изучаю именно начиная с самого примитивного CRUD-приложения.
Сразу предупрежу что не хочу разводить холивар, но все же какую IDE ты используешь, анон? Есть дикое желание перекатиться из Sublime Text, ну или не совсем перекатиться, в сторону чего-то более мощного, функционального. Что посоветуешь? Интересуют кроссплатформенные решения, но главное под Windows и Linux, хотя если что-то действительно годное, хватит и под Linux.
Спасибо, пожалуйста.
Пиздец, что за ответы. Наверное это было очевидно, вопрос был в идеях и примерах разделения контента страницы и сайдбара.
Как тебе идея?
Определись хотя бы что тебе нужно, потом задавай вопрос, даже пожалел что тебе пытался помочь, мразь.
Это я и был, маня. А ты даже не в состоянии загуглить это и по первой же ссылке найти ответ, так что обтекай.
google://bootstrap full height sidebar
Хотел тебе годноту спалить, но нет пожалуй не буду раз ты такое ленивое хуйло.
Соответственно отвечает здесь не ОП, а всякие тролли.
Тут надо понимать что Yii/lavarel против Symfony — это фреймворки разного уровня.
Есть микрофреймворки для крошечных проектов или каких-нибудь API: Slim, Silex
Есть средние фреймворки для «обычных» сайтов: Yii/lavarel
Есть тяжеловесы для сложных проектов: Симфони 2 (раньше еще ZF использовали)
В ваших Юи/Лаварелях нет ни нормального ORM, ни твига, вообще ничего нет. Как там строить сложные связи и отношения в модели, непонятно.
Потому кривая упоминаний в гугле мало что говорит. Ну да, средних проектов больше, чем тяжелых, ок.
Спасибо, кэп
Только PHPStorm.
Это тёмно-серое говно на жабе с регулярностью в 5-6 дней виснет намертво на моей инвалидке, жрёт сотни памяти, не умеет в $this->{__FUNCTION__}(); , но щитоподелать, лучше ничего нет и не было.
Я пробовал всё и долго: блокнот, комодо, php expert editor, notepad++, nano, vim, mcedit, Zend Studio, просто эклипс, идею с плагинами, сетевые бобы, sublime и бог-знает что ещё о чём вслух стыдно сказать.
Иди нахуй!
Выкинь свои мозги на улицу и просто купи лицензию на PHPStorm и забудь про всё остальное.
Нет денег на основной инструмент?
Иди нахуй, ты тогда не программист, а хуй-знает-что!
> не умеет в $this->{__FUNCTION__}
Но зачем так писать? ни разу в жизни не видел такого
Алсо мне нравится саблайм за минималистичность, хороший интерфейс и скорость. Автодополнения нет? У меня голова для этого есть (ну то есть лучше бы оно было, но не ценой тормозов). Зато у него нет ни одной панели инструментов и быстрый мощный поиск по файлам который я использую постоянно. Плюс мультикурсоры, нечеткий поиск файлов/имен и запускается за пару секунд (тем более что он иногда падает и быстрый перезапуск помогает).
Если нужно объяснять, то не нужно объяснять.
Пока не почувствуешь, что тебе НАДО, тебе не понять. Можешь хоть gedit использовать, блять.
>>478304
>ни разу в жизни не видел такого
Зря жил.
>быстрый мощный поиск
У меня лицензия на sublime и storm.
Sublime для поиска и больших файлов, storm для всего остального. Всё. Жизнь удалась.
> тем более что он иногда падает
Что за ОС? Ни разу за года 2 использования(а может даже больше, точно сейчас не скажу) не упал что 2й, что 3й.
> gedit
Использовал его одно время, очень годный редактор, не в плане как IDE, а именно как редактор.
Нахуя крякать саблим? А купить ешго можно разве что выразить свою благодарность разработчикам.
Падают расширения в отдельном процессе (и надо перезапускать редактор так как без второго процесса даже некоторые горячие клавиши не работают).
В каких-то случаях падал сам редактор, например если во время поиска по файлам запустить еще один поиск (я не уверен что дело в этом так как это всего 1 раз наблюдалось) или от сложных регулярных выражений в поиске.
Ты наверно просто не очень активно использовал если не сталкивался.
> поиска по файлам
Ты имеешь ввиду поиск подстроки в файле?
Всегда юзал конструкцию, даже не знаю где у sublime такой функционал.
[CODE]
grep -i -n "string" `find -name "*.php"`
[/CODE]
> Всегда юзал конструкцию, даже не знаю где у sublime такой функционал.
Это значит что ты редко и мало пользуешься поиском потому что иначе ты бы заметил насколько убог греп:
— нет автоматического игнорирования всяких служебных папок (надо дописывать руками)
— убогий синтаксис регулярок, нет например ассершенов вроде (?! ... )
— синтаксис для выражений в find неудобный и в нем легко ошибиться (попробуй добавь еще несколько условий, например исключения для папок)
— работает медленнее чем в саблайме (я не знаю, как он это делает, но по моему и саблайм и php storm ищут быстрее на больших проектах, может индексы какие-то используют)
— результат поиска бесполезен. Ты не можешь клинкуть и перейти к файлу и что-то исправить или посмотреть окружающих код.
— нет опции замены
— ты подставляешь find через косые кавычки. на пробелах или других спецсимволах имя файла передастся неправильно. ты бы мануал по башу почитал прежде чем им хвастаться, неуч.
grep годится только для примитивных случаев вроде поиска строки где-то на сервере в куче файлов. Поиск в IDE и редакторах мощнее и удобнее.
Ну и скорость: нажать Ctrl + Shift + F и ввести искомое слово гораздо быстрее чем набирать длинную команду (да можно сделать шелл скрипты но ты ведь его не сделал?)
> но ты ведь его не сделал
сделал и запихал под алиас, использую его только для поиска в файлах определенного расширения. Про такой функционал саблима просто не знал, хотя сука даже на панели закладок висит http://sublime-text-unofficial-documentation.readthedocs.org/en/latest/reference/keyboard_shortcuts_win.html
>Иди нахуй!
>Выкинь свои мозги на улицу и просто купи лицензию на PHPStorm и забудь про всё остальное.
Пост реклама PHPstorm. Весь тред создан только для их блядской рекламы. На PHP пишут только манагеры PHPstorm Расходимся.
А если серьёзно - захотелось попробовать, ибо также как и тот анон перепробовал всё, и всё является говном.
Я понимаю что книга хороша, но... давайте честно она для очень продвинутого человека. Ньюфагу, а именно на них направлена шапка, она не подойдёт. Ньюфаг даже не поймёт о чём она.
Тюремная рулетка. Роллим.
https://ideone.com/bAH8h8
там походу изначально запускается мой сохраненный результат. Пистон. Я так понимаю вам нужно самим запустить
потому что книги для ньюфагов на русском обычно плохие, старые, код в них с ошибками и уязвимостями. Но основы можно изучить например по нашему учебнику, а затем уже браться за Шлосснейгла.
>>478692
Да. надо сделать fork
Сделано верно. В Switch стоит всегда добавлять default: c выбросом исключения (так как ты пока их не изучил то используй просто die("Неправильное значение: $x")) чтобы отлавливать ошибки вроде случайно пропущенной цифры или неправильного переданного значения. Иначе они могут остатться незамеченными.
У меня из дома двач недоступен
пишет вроде бы вот так: forbidden 403 ngix 1.7.3 Это провайдер меня обламывает?
Не могу после работы наш тредик почитать теперь, а тут не до этого
Пишу с работы пока все ушли на обед
Тебе кто выпал, оп?
Алсо, спасибо за проделанную работу. Очень интересно читать. Сколько глав там всего? Много?
Начал изучение вчера ночью, надеюсь чему-нибудь научиться. Хорошо что знаю другой язык, помогает. Алсо пхп чутка смахивает на обычный линуксовский баш. Короче спасибо.
много людей на твой сайт заходит?
Признаюсь. Первый раз тесак, второй раз шестерка, третий раз чухан, четвертый раз пистон. Такие дела, а тебе?
Чего ты такой злой. лол
Я решил не рисковать и не запускать рулетку, а по твоей ссылке я вижу то же самое что и ты (некто Пистон с цифрой 4).
Не рисковать лол. Какой-то ты странный пиздец.
Такие вещи на говне не пишут.
/prArhivator
HTML и CSS уже сделаны.
php no good use raby) raby beter))
yii2 более стабильный, я бы с него начал.
laravel более модный, я бы с него начал.
$_POST или $_GET массивы читай, в зависимости от того, что у тебя в html форме забито.
со слима начни, потом на ларавел, у него прогрессивное комьюнити.
Для бд будет все по дата маперу, плюс синглтон коннект (нужно ли?). Будут классы для приема (с фильтрами), отправки, конверта в json. Или описать конверт как метод отправщика? Связь будет с помощью REST. Для этого есть какие-то паттерны, которые к тому же с ангуляром дружат? Или может небольшой фреймворк только для этих целей?
Ну а может есть особые паттерны для асинхронных сайтов? Хочется сразу иметь возможность невообразно расширять проект, без необходимости потом сто раз переделывать. В серьезные пхп фреймворки пока нет мотивации лезть, боюсь просто забью.
Поясните, вот сделал по мануалу https://www.youtube.com/watch?v=H9IftNe4_Xg
постраничный вывод постов. т.е. посты должны выводится на второй странице после 4ого поста. Нажимаю на вторую страницу - ничего не открывается? Что не так? Вот ссылка моя.
http://deuzsite.zz.mu/index.php?page=1
А вот код. http://jsbin.com/temejowoge/1/edit
>максимально асинхронно
Просто сделай так чтобы работало.
К тому времени, когда тебе понадобится асинхронность у тебя не останется подобных вопросов.
>невообразно расширять проект
Манямир. Для этого нужен совсем другой уровень мышления. Ты же пишешь реальный проект, а не библиотеку. Просто следуй чётким задачам.
ОП - хуй, который ни одной книги по PHP в жизни не прочитал. Чтобы скрыть свою убогость, он стал предлагать курсы нубам, чтобы одновременно прокачивать ЧСВ и дополнять пробелы в своих знаниях. Теперь он вышел на совершенно новый уровень окукливания в своём манямирке и ему не нужны собеседники.
Это не значит, что тут не осталось ровных пыхомакак, которые секут что к чему.
Найди себе дело получше, чем прикидываться другими людьми на анонимном форуме.
Даже на петушиной хате своя иерархия, как ты видишь.
Что может являться для человека достаточным основанием заявить, что он "знает" некий инструмент для создания программного обеспечения? Почему одни люди обладают авторитетом, а другие нет? Что вообще является авторитетом в области создания ПО?
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir.basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "Файл корректен и был успешно загружен.\n";
}
else {
echo "Возможная атака с помощью файловой загрузки!\n";
}
echo 'Некоторая отладочная информация:';
print_r($_FILES);
Мне пишет:
Возможная атака с помощью файловой загрузки!
Некоторая отладочная информация:Array
(
[files] => Array
(
[name] => sl2.png
[type] =>
[tmp_name] =>
[error] => 2
[size] => 0
)
)
В чём может быть дело?
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir.basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "Файл корректен и был успешно загружен.\n";
}
else {
echo "Возможная атака с помощью файловой загрузки!\n";
}
echo 'Некоторая отладочная информация:';
print_r($_FILES);
Мне пишет:
Возможная атака с помощью файловой загрузки!
Некоторая отладочная информация:Array
(
[files] => Array
(
[name] => sl2.png
[type] =>
[tmp_name] =>
[error] => 2
[size] => 0
)
)
В чём может быть дело?
Если убрать серый фон под сайдбаром, то внезапно окажется что растягивать его не требуется, а на странице станет чуть просторнее. Фон не требуется, так как область меню отделена от остальной страницы полями.
Так, растягивание можно сделать абсолютным позиционированием или добавлением странице фоновой картинки с серым цветом слева.
Также, я бы чуть-чуть уменьшил расстояние между ссылками в сайдбаре, чтобы было видно, что они вместе, а не оторваны друг от друга. Но не слишком, чтобы не было тесно.
Для 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 бекенда тут хорошо подойдет микрофреймворк 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, библиотеки и фреймворки вместо велосипедов.
Перед загрузкой файла надо проверить нет ли ошибки (оно обозначается кодом в массиве FILES) как описано тут
https://php.net/manual/ru/features.file-upload.errors.php
https://php.net/manual/ru/features.file-upload.post-method.php
Ну если парень их треда под руководством ОПа вкатился в веб и насал пилить бабосы, то ОП - авторитетен, а ты - хуй беспруфный
Понимание.
Каллитчество коммитав и фалловирав на жытХаби.
Это копия, сохраненная 14 июня 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.