Полная разработка -- vue.js+php для разработки системы личного блога

PHP внешний интерфейс Vue.js полный стек
Полная разработка -- vue.js+php для разработки системы личного блога

Оригинальная ссылка:код медвежонка.можно/статья?ID=…

1.png

Внешний адрес источника:GitHub.com/CB-early-month/trade-barriers…

Исходный код интерфейса блога:GitHub.com/CB-early-month/trade-barriers…

Адрес блога:codebear.cn

предисловие

Блог начал разработку в июле 2018 года, завершил и запустил первую версию в августе, сейчас идет оптимизация + добавление новых функций...

Зачем создавать личный блог

Я всегда хотел создать свой личный блог.В блоге можно записывать свои учебные заметки, обобщать опыт, делиться технологиями и т. д. Я пробовал csdn, blog garden и hexo для написания блогов, но как программист я все еще хочу иметь свой личный блог!

Зачем использовать vue+php для создания блога

  • Первый контакт с Vue был в начале этого года.Мой дипломный проект был сделать сайт по продаже подержанных автомобилей(ээ(⊙о⊙)... Сначала увидел эту тему и отказался так как хотел сделать андроид, но не было возможности, преподаватель тему не менял). На данный момент мои знания о фронтенде все еще находятся на стадии реализации html+css+simple js или jq, я потихоньку узнавал о vue в интернете и узнавал о vue.提供了响应式 (Reactive) 和组件化 (Composable) 的视图组件, это именно то, что мне нравится, поэтому я использовал Vue для написания своего дипломного проекта, а потом я вышел из-под контроля и писал один за другим.(Используйте Vue для реализации функции дизайна плакатов), сайт воспроизведения видео. На этот раз я решил использовать Vue для ведения личного блога.
  • Помню, что я был связан с PHP два или три года, в то время я работал над проектом с другом и использовал thinkphp (но я занимался фронтендом, поэтому я знал о PHP), и у меня есть с тех пор я работал над Android, и именно из-за моего дипломного проекта я начал перезапускать. Используя php, я выбрал самый простой фреймворк ci для начала работы, выполняя выпускной дизайн во время обучения и медленно инкапсулируя простой в использовании проект (в основном нужно только написать контроллер и модель, настроить маршрутизатор и базу данных), поэтому этот блог также просто выберите это для разработки, скорость выше.

Используемые серверы, технологические стеки, библиотеки

Проект размещен на моем Alibaba Cloud ECS (студенческий компьютер), а картинки загружены в Qiniu

  • php (фреймворк ci)
  • vue
  • vue-router
  • vuex-router-sync
  • vuex
  • web-storage-cache
  • element-ui
  • axios (сетевой запрос)
  • cropperjs (обрезка изображения, используется в системе управления фоном)
  • highlight.js (подсветка кода)
  • помечено (уценка текста в html)
  • mavon-editor (редактор уценки)
  • момент (обработка даты)
  • фотосвайп (смотреть увеличенное изображение)

Тема интерфейса блога

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

выполнить

визуализация

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

  • мобильный

    博客
    后台管理

  • ПК сторона

    博客
    后台管理

php интерфейс для ведения блога

  • Структура проекта

image.png

  • помощник возвращаемого значения

image.png
вsuccess_result、fail_resultЭти два метода представляют собой структуру json, возвращаемую интерфейсом.success、failЭти два метода представляют собой структуру json, возвращаемую моделью контроллеру, которая инкапсулирует унифицированный интерфейс возврата и более проста в управлении.

  • Проверка разрешений на фоновое управление

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

image.png
Загрузите Common_model в Base_Controller и получите accessToken от клиента:
image.png
Все остальные контроллеры наследуют Base_controller и вызывают проверку разрешений в конструкторе контроллера, который требует проверки разрешений:
image.png

блог

Система управления фоном и блог пишутся в одном проекте, с помощью проекта vue-cli scaffolding, а потом трансформируются сами. Из-за медленной загрузки первого экрана некоторые библиотеки (vue, element-ui и т.д. изменены на загрузку через cdn в режиме non-dev).

Блог:Главная (Список последних статей), Категория/Теги, Архивы, О нас, Ссылки, Статьи, Список статей, Резюме, Поиск

Система управления фоном:Домашняя страница (отображение статистики), управление статьями (публикация, редактирование, удаление, предварительный просмотр и т. д.), управление комментариями (ответ, удаление), управление категориями/тегами (добавление, удаление, редактирование), настройка веб-сайта (информация, резюме, аватар , и т.д.)

Некоторые общие компоненты:Модуль комментариев (справочник по реализации выраженияПоле ввода выражения jquery, может сохранить базу данных), модуль отображения статьи markdown (используется помеченный синтаксический анализ (преобразуется в html и сохраняется в базе данных при публикации), подсветка кода обработки highlight.js, фотосвайп для предварительного просмотра большого изображения), обрезка и загрузка изображения (el-upload+cropperjs), статья Каталог (автоматически генерируется из html)

  • Структура проекта

image.png

  • Унифицированная обработка пакета Axios

image.png

Суммировать

На написание первой версии этой блог-системы ушло около месяца, и сейчас она оптимизируется и добавляет новые функции одну за другой.Я узнал о загрузке cdn, преобразовании dataUrl изображения в blob, эффектах анимации, адаптации для ПК и других знаниях. Каждый раз, когда я делаю проект, я постоянно учусь и делаю успехи~

Внешний адрес источника:GitHub.com/CB-early-month/trade-barriers…

Исходный код интерфейса блога:GitHub.com/CB-early-month/trade-barriers…

Адрес блога:codebear.cn