thomas-claireau/php-p5-openclassrooms

博客的包管理器

1.0.0 2019-12-29 17:42 UTC

This package is auto-updated.

Last update: 2024-09-12 13:32:21 UTC


README

Codacy Badge Maintainability

项目演示,点此访问 👋

项目安装

通过 Composer

composer create-project thomas-claireau/php-p5-openclassrooms

如果您直接下载项目(或使用 git clone),请在项目根目录执行 composer install

然后安装项目的前端依赖。位于 public 目录

npm install

开发服务器

要启动开发服务器,请执行 npm run serve

在此之前,请确保您已配置好虚拟主机。

要更改主机 URL,请访问 public/_webpack/config.js 并更改 proxyTarget 的值。

如果您没有主机 URL,可以使用以下 URL(在 config.js 中):http://recette.thomas-claireau.fr

生产站点

要查看生产站点的版本,请访问以下 URL

发送邮件

如果您想使用邮件服务器发送邮件,您可以在 ~src/Controller/setup/configMail_sample.php 中进行配置。输入您的信息后,您需要将文件重命名为 configMail.php

注意

数据库访问

项目在 Packagist 上提供时没有数据库。这意味着您需要在项目根目录添加一个 config 文件夹。

在此文件夹中,添加一个名为 db.php 的文件,并按照以下格式进行

<?php

$HOST = ''; // le host de votre projet
$DB_NAME = ''; // le nom de la base de donnée
$DB_USER = ''; // l'identifiant d'accès
$DB_PASS = ''; // le mot de passe d'accès
$DB_DSN = "mysql:host={$HOST};dbname={$DB_NAME}";

define('DB_DSN', $DB_DSN);
define('DB_USER', $DB_USER);
define('DB_PASS', $DB_PASS);

define('DB_OPTIONS', array(PDO::ATTR_DEFAULT_FETCH_MODE => 
PDO::FETCH_ASSOC, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

SQL 注入

为了获得与我的项目类似的数据库结构,我在 config 文件夹中附上一个 db.sql 文件,该文件将为您构建数据库。

背景

你终于迈出了这一步!PHP 开发世界触手可及,你需要展示你的才华,以便在短时间内说服未来的雇主/客户。你是一位 PHP 开发者,是时候通过一个个性化的博客来展示你的才能了。

需求描述

因此,项目的目标是开发你的专业博客。该网站分为两个主要部分:

  • 所有访客都需要的页面
  • 允许管理你的博客的页面。

以下是您网站需要提供的页面列表:

  • 首页
  • 列出所有博客文章的页面
  • 显示单个博客文章的页面
  • 添加博客文章的页面
  • 修改博客文章的页面
  • 修改/删除博客文章的页面
  • 用户登录/注册页面

您将开发一个仅对已注册和验证的用户可访问的行政部分。

因此,行政页面将根据条件访问,并且您将确保行政部分的安全性。

让我们先从所有访客都需要的页面开始。

在首页上,需要展示以下信息:

  • 您的姓名和姓氏
  • 照片和/或标志
  • 一个符合您个性的吸引眼球的句子(例如:“Martin Durand,您需要的开发者!”)
  • 一个菜单,可以导航您网站上的所有页面
  • 一个联系表单(提交此表单后,将发送一封包含所有这些信息的电子邮件)包含以下字段
    • 姓名/名字
    • 联系邮箱
    • 信息
  • 您的简历PDF格式的链接
  • 以及您可以在上面关注您的所有社交媒体链接(GitHub,LinkedIn,Twitter…)。

在列出所有博客文章的页面上(从最新到最旧),需要显示每篇博客文章以下信息

  • 标题
  • 最后修改日期
  • 引言
  • 以及博客文章的链接

在展示单篇博客文章详细信息的页面上,需要显示以下信息

  • 标题
  • 引言
  • 内容
  • 作者
  • 最后更新日期
  • 允许添加评论的表单(提交后需验证)
  • 已验证并发布的评论列表

在允许修改博客文章的页面上,用户可以修改标题、引言、作者和内容字段。

在页脚菜单中,必须有一个链接可以访问博客的管理界面。

约束条件

这次我们将不使用WordPress。所有内容都由您开发。可以来自其他地方的代码只有您将精心选择的Bootstrap主题的代码。外观很重要!此外,使用一个或多个外部库也是允许的,前提是通过Composer将其集成。

注意,您的博客必须易于在移动设备上浏览(移动电话,平板电脑,平板电脑…)。这是必不可少的:D我们强烈建议您使用模板引擎,如Twig,但这不是强制的。

在管理部分,您将确保只有具有“管理员”权限的人才能访问,其他用户只能评论文章(在发布前需验证)。

重要:您将确保不存在安全漏洞(XSS,CSRF,SQL注入,会话劫持,可能的PHP脚本上传…)。

您的项目必须推送到GitHub,并可供使用。我建议您使用pull requests进行工作。由于GitHub上关于项目的大多数通信都使用英语,您的提交必须是英语。

您必须创建与您需要执行的各项任务相对应的所有问题(票据)。

请确保您的票据覆盖了项目中的所有需求。给出一个时间或工作量估计(如果您熟悉敏捷方法),并尝试保持此估计。

编写这些问题允许您就共同词汇达成一致,并且强烈建议用英语编写!

注意

您的项目必须通过SymfonyInsight或Codacy进行跟踪,以监控代码质量,您必须至少获得银牌(对于SymfonyInsight)。此外,建议遵守PSR,以提供易于理解和轻松扩展的代码。

如果某个功能似乎解释不清楚或缺失,请与您的导师讨论,以便共同决定您希望做出的选择。优先考虑的是时间。

✔️ 项目已验证

评估者的评论

  1. 对学生的整体工作评估(如果项目需要修改,则指定未通过验证的准则)

完整的网站,项目管理良好,无论是从范围还是技术方面都非常出色。

  1. 根据项目准则对交付成果进行评估

需求文档填写完整,代码、图表、GitHub上的管理质量良好,无可挑剔。

  1. 对口头展示及其与期望的一致性进行评估

答辩已经准备好了,感觉很明显。非常好的演示支持,良好的语速,非常好。

  1. 评估学生获得的新技能
  • 从头开始开发一个应用程序
  • 使用MVC架构进行开发
  • 请求数据库
  1. 优点(至少1个)
  • 每个可交付成果的质量
  • 答辩准备充分
  1. 改进方向(至少1个)
  • 继续这个势头,深化技术,包括更高级的技术,如使用Ajax请求加载更多文章