thomas-claireau / php-p5-openclassrooms
博客的包管理器
Requires
- php: ^7.2
- swiftmailer/swiftmailer: ^6.0
- twig/twig: ^2.12.1
Requires (Dev)
- tracy/tracy: ^2.7.0
This package is auto-updated.
Last update: 2024-09-12 13:32:21 UTC
README
项目演示,点此访问 👋
项目安装
通过 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,以提供易于理解和轻松扩展的代码。
如果某个功能似乎解释不清楚或缺失,请与您的导师讨论,以便共同决定您希望做出的选择。优先考虑的是时间。
✔️ 项目已验证
评估者的评论
- 对学生的整体工作评估(如果项目需要修改,则指定未通过验证的准则)
完整的网站,项目管理良好,无论是从范围还是技术方面都非常出色。
- 根据项目准则对交付成果进行评估
需求文档填写完整,代码、图表、GitHub上的管理质量良好,无可挑剔。
- 对口头展示及其与期望的一致性进行评估
答辩已经准备好了,感觉很明显。非常好的演示支持,良好的语速,非常好。
- 评估学生获得的新技能
- 从头开始开发一个应用程序
- 使用MVC架构进行开发
- 请求数据库
- 优点(至少1个)
- 每个可交付成果的质量
- 答辩准备充分
- 改进方向(至少1个)
- 继续这个势头,深化技术,包括更高级的技术,如使用Ajax请求加载更多文章