PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 7
php-beginer Отправлено: 24 Ноября, 2017 - 09:06:23 • Тема: Разработка интернет-магазина в учебных целях • Форум: Обучение на основе реальных проектов

Ответов: 8
Просмотров: 3804
Строитель пишет:
php-beginer пишет:
Название фрейма, который подойдет начинающему вроде меня, можно?
Во многих вакансиях "мелькает" Laravel. К нему и русская дока имеется.

Это для сервера. А для js что лучше?
php-beginer Отправлено: 23 Ноября, 2017 - 21:40:35 • Тема: Разработка интернет-магазина в учебных целях • Форум: Обучение на основе реальных проектов

Ответов: 8
Просмотров: 3804
Строитель пишет:
php-beginer, возьмите какой-то фреймворк​, и на его основе постройте ваш проект - там и шаблонизацию подтянете, и с адаптивной вёрсткой по-работаете, и самое важное - получите ценные и востребованные знания, которые в будущем будут работать на вас.

Название фрейма, который подойдет начинающему вроде меня, можно? Или тут все субъективно - с чем легче, то и использовать? Просто не хотелось бы, чтобы мои желания превысили возможности фрейма, и не получилась ситуация, что "только так, а не иначе". Или это априори будет, если подвязываться к чужому инструменту?
php-beginer Отправлено: 23 Ноября, 2017 - 16:53:29 • Тема: Разработка интернет-магазина в учебных целях • Форум: Обучение на основе реальных проектов

Ответов: 8
Просмотров: 3804
caballero пишет:
Цитата:
Судя по всему, Apache придется менять на Nginx, ибо читал, что для серьезных приложений и сервисов Apache не гож

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

Согласен, но с чего-то нужно начать. За что можно было зацепиться, чтобы увидеть проблемы, за то и зацепился. Описал, чему научился, чтобы Вы посоветовали инструменты в соответствие с уровнем. Я понимаю, что будет сложно, поэтому и открыл тему. Далее - изучение документации и тем в коммьюнити, попытка "повторить" или "написать по-своему". Время есть, желание тоже. Основной вопрос в инструментах, в точке старта.
php-beginer Отправлено: 23 Ноября, 2017 - 09:49:23 • Тема: Разработка интернет-магазина в учебных целях • Форум: Обучение на основе реальных проектов

Ответов: 8
Просмотров: 3804
Здравствуйте, уважаемые форумчане. Вопрос в следующем: имею базовые знания в 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 работать не будет.

P.S.: Заранее спасибо за ответы.
php-beginer Отправлено: 11 Ноября, 2017 - 22:39:54 • Тема: Паджинация • Форум: Вопросы новичков

Ответов: 4
Просмотров: 364
Sail пишет:
php-beginer, там, кстати, ещё есть присваивание вместо сравнения...

Уже поправил. Спасибо
php-beginer Отправлено: 11 Ноября, 2017 - 19:17:40 • Тема: Паджинация • Форум: Вопросы новичков

Ответов: 4
Просмотров: 364
Чувствовал, что решение на поверхности. Большое спасибо Хорошо
php-beginer Отправлено: 10 Ноября, 2017 - 10:22:56 • Тема: Паджинация • Форум: Вопросы новичков

Ответов: 4
Просмотров: 364
Пока только пробую php (месяц-три от силы ваяю). Дошло дело до постраничной навигации.
Своими колхозными знаниями решил попробовать повтор SQL запроса с лимитом, где начало и конец выборки подставляются в зависимости от номера страницы, получаемого через адресную строку GET-запросом. Пришел к урлу формата index.php?p=n, где n - текущий номер страницы. Встроил проверку номера на то, что это целое и положительное число, жестко задал лимит (пока по 2 записи на страницу), определил количество страниц (результат запроса на подсчет количества строк в таблице, деленный на количество записей, которое планируется выводить на странице), проверил, что полученное значение номера не превышает общее количество страниц. После сформировал массив номеров страниц как диапазон значений от 1 до общего количества страниц. Далее, красиво вывел номера с ссылками на соответствующие страницы в теле индексной страницы
Собственно, проблема заключается в том, что главная страница (она же первая) корректно отображается только в случае, если урл чистый, или указан нулевой номер. При прямом заходе на index.php?p=1 наблюдаю следующую картину: показывается запись, которая должна быть второй на первой странице, и первая запись со второй страницы. Номера выше единицы работают нормально.
Пытался добавить дополнительное условие для первого номера - на этом скрипт прекратил работать и стал показывать содержимое первой страницы на всех номерах.
Код прилагается ниже (писал сам, ничего ниоткуда не копировал):

Основной контроллер articles.php - сниппет подсчета количества страниц, проверки текущего номера и формирования массива номеров
PHP:
скопировать код в буфер обмена
  1.  
  2. $total = mysql_query("SELECT COUNT(*) FROM `articles`");
  3. $per_page = 2;
  4. $pages = $total / ($per_page);
  5. $p = $_GET['p'];
  6. $check_p = is_integer($p);
  7. if (($p < 0)||($check_p = false)||($p > $pages)) exit(include '/404.php');
  8. else{
  9. if (!$p) $start = 0;
  10. else $start = $p;
  11. $prev = $p - 1;
  12. $next = $p + 1;
  13. if (($p = 0) || (!$p)){
  14. $prev = 1;
  15. $next = 2;
  16. if ($next > $pages) $next = $pages;    
  17. }
  18. $border = range(1, $pages);
  19. exit (include "/tp/stati.php");
  20. }
  21.  


Файл pagination.php - сниппет, отвечающий за вывод номеров с ссылками на соответствующие страницы
PHP:
скопировать код в буфер обмена
  1.  
  2. foreach ($border as $value) {
  3. echo '<li><a href='.'"/articles.php?p='.$value.'">'.$value.'</a></li>';
  4. }
  5.  


Фрагмент файла stati.php - собственно, сам запрос на выборку и сортировку
PHP:
скопировать код в буфер обмена
  1. $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. Именно поэтому происходит смещение выборки. Подскажите, пожалуйста, как решить этот вопрос. Заранее огромное спасибо за ответы. Также хотелось бы знать, насколько подход с повторением запроса с лимитом правильный. Если есть альтернативные варианты, также готов ознакомиться.

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB