php-beginer, возьмите какой-то фреймворк, и на его основе постройте ваш проект - там и шаблонизацию подтянете, и с адаптивной вёрсткой по-работаете, и самое важное - получите ценные и востребованные знания, которые в будущем будут работать на вас.
Название фрейма, который подойдет начинающему вроде меня, можно? Или тут все субъективно - с чем легче, то и использовать? Просто не хотелось бы, чтобы мои желания превысили возможности фрейма, и не получилась ситуация, что "только так, а не иначе". Или это априори будет, если подвязываться к чужому инструменту?
Судя по всему, Apache придется менять на Nginx, ибо читал, что для серьезных приложений и сервисов Apache не гож
вы еще ничего толкового не написали даже из несерьезных приложений а уже переживаете насчет апача. Апач - будет самой последней вашей проблемой
Согласен, но с чего-то нужно начать. За что можно было зацепиться, чтобы увидеть проблемы, за то и зацепился. Описал, чему научился, чтобы Вы посоветовали инструменты в соответствие с уровнем. Я понимаю, что будет сложно, поэтому и открыл тему. Далее - изучение документации и тем в коммьюнити, попытка "повторить" или "написать по-своему". Время есть, желание тоже. Основной вопрос в инструментах, в точке старта.
Здравствуйте, уважаемые форумчане. Вопрос в следующем: имею базовые знания в php, mysql, jquery.js. Хочу попробовать написать полноценное веб-приложение с функционалом интернет-магазина для закрепления и усиления навыков. Посоветуйте инструменты разработки.
В первую очередь, хотелось бы свести к минимуму возможные дублирования кода, отдельных функций, сниппетов и пр.
Во-вторых, хоть проект и учебный, хотелось бы обеспечить безопасность данных. Например, обеспечить доступ в админку по случайно сгенерированному временному ключу, отсылаемому на почту, или сделать какую-нибудь похожую штуку.
В-третьих, - придать среде какую-никакую автономность: чтобы при изменениях в составе данных система сама подстраивала логику работу под новые условия, и мне бы не приходилось руками переписывать скрипты. Например, если изменилось количество записей, изменился фильтр сортировки данных и т.д., система сама разрулила вопросы с выводом этих данных на индексных страницах (динамическая смена полей в форме и др.).
В-четвертых, - оптимизировать используемые при подгрузке страниц ресурсы: изменять размер и пропорции изображений в соответствие с разрешением экрана клиента, динамически собирать оптимизированные css и js-ресурсы на основании данных об использованных в верстке индексной страницы классах, id элементов и правилах.
В связи с этим вопрос необходимости использования фреймворка становится сам по себе.
Читал о react, angular и ember.js, говорят, что angular будет ближе тем, кто работал с jquery.
Также интересует инструмент автоматизации серверной части - также фреймворк, скорее всего, будет нужен, пробовал yii-2, понравился его встроенный сервис по генерации видов, моделей и контроллеров, однако у меня с ним дальше учебных задач по изучению работы не пошло. Сложным он мне тогда казался. Есть ли что-нибудь проще?
По ресурсам - учебные проекты делаю на веб-сервере под OpenServer, в качестве СУБД - mysql 5.5, серверный клиент - Apache 2.4, php 5.5, специализированных сред разработки не использую (пока), ваяю все в sublime text;
Прошлые учебные проекты:
- четырехстраничный сайт со статичными страницами, целиком прогружаемыми из БД, единая точка входа и маршрутизация средствами сервера через разбивку урла по слэшу;
- проект блога с такой же маршрутизацией и точкой входа, обработка страниц шаблонизирована (html исходники выделены в отдельную папку, места вывода данных обозначены <?php echo $raw['трали-вали'];?>), где трали-вали - элемент массива, формируемого по запросу в контроллере, реализована динамическая подгрузка данных из json на ajax средствами jquery, успешно протестированы библиотеки phpmailer и php excel для отправки письма на почту с SMTP авторизацией и формированием excel'вского документа на основании данных из таблицы;
- небольшой "велосипед" по шаблонизации html-писем для рассылки через сервис Unisender: единая точка входа, маршрутизация, подстановка данных в html-шаблоны, отгрузка содержимого в Unisender по api средствами curl, отображение контента на страницах по событию средствами того же ajax jquery и json из php; писал для себя, ибо достало собирать под каждое письмо свой исходный код;
Судя по всему, Apache придется менять на Nginx, ибо читал, что для серьезных приложений и сервисов Apache не гож.
Отсюда вопрос, как разруливать точку входа, назначать урл страниц ошибок, закрывать доступ к папкам и устанавливать прочие правила для nginx, ведь apache'вский .htaccess работать не будет.
Пока только пробую php (месяц-три от силы ваяю). Дошло дело до постраничной навигации.
Своими колхозными знаниями решил попробовать повтор SQL запроса с лимитом, где начало и конец выборки подставляются в зависимости от номера страницы, получаемого через адресную строку GET-запросом. Пришел к урлу формата index.php?p=n, где n - текущий номер страницы. Встроил проверку номера на то, что это целое и положительное число, жестко задал лимит (пока по 2 записи на страницу), определил количество страниц (результат запроса на подсчет количества строк в таблице, деленный на количество записей, которое планируется выводить на странице), проверил, что полученное значение номера не превышает общее количество страниц. После сформировал массив номеров страниц как диапазон значений от 1 до общего количества страниц. Далее, красиво вывел номера с ссылками на соответствующие страницы в теле индексной страницы
Собственно, проблема заключается в том, что главная страница (она же первая) корректно отображается только в случае, если урл чистый, или указан нулевой номер. При прямом заходе на index.php?p=1 наблюдаю следующую картину: показывается запись, которая должна быть второй на первой странице, и первая запись со второй страницы. Номера выше единицы работают нормально.
Пытался добавить дополнительное условие для первого номера - на этом скрипт прекратил работать и стал показывать содержимое первой страницы на всех номерах.
Код прилагается ниже (писал сам, ничего ниоткуда не копировал):
Основной контроллер articles.php - сниппет подсчета количества страниц, проверки текущего номера и формирования массива номеров
$result=mysql_query("SELECT id, title, description, date, time, author, snippet_text, topic, img FROM `articles` ORDER BY date DESC LIMIT $start, $per_page");
Вопрос именно с ситуацией, когда p=1. В логах сервера пишется, что в лимит при p=1 подставляется 1,2, а нужно 0,2. Именно поэтому происходит смещение выборки. Подскажите, пожалуйста, как решить этот вопрос. Заранее огромное спасибо за ответы. Также хотелось бы знать, насколько подход с повторением запроса с лимитом правильный. Если есть альтернативные варианты, также готов ознакомиться.