草庐IT

php - Controller 的 Symfony MVC 最佳实践

在Symfony/Doctrine/PHP项目中,客户提示我们违反了软件开发的最佳实践。投诉是关于源代码分层不当,以及缺少单元测试。这是一个不到5万美元的项目。我相信客户有一位来自Java领域的专家,也许是SpringFramework,正在查看源代码。正如我们所见,我们一直在使用适当的MVC。View逻辑完全由TWIG处理。数据库完全由Doctrine处理。我们使用SymfonySecurity进行访问控制($this->get('security.context')->isGranted('ROLE_ADMIN')和$this->get('security.context')->g

php - 基于 MVC 基础的动态路由 - i18n 和 l10n

我最近一直在提高我的网络编程技能,以遵循更健全、更易于维护的MVC编码风格。然而,我曾经用我的“自己动手”框架做的一件事是基于mod_rewrite的灵事件态路由。这似乎是cakephp、zend等东西的一个棘手问题。它试图复制我拥有的功能,这让我有些头疼。在您自己的上下文中,您可以执行以下操作:RewriteRule^([A-Za-z0-9-/]+)$index.php?q=$1[NC,L]将所有匹配的url重写为处理url的任意脚本,将"/abc-123/abc-456/controller-value"等的组合解析为任何页面或操作列表,函数等可以从数据库表设置,硬编码,blabl

php - 在 MVC 设置 (PHP) 中处理配置变量的正确方法

我正在用PHP编写我的第一个基本的基本MVC模式设置。我知道全局变量不好,我也知道我不希望我的所有类都可以访问我的所有配置变量。我有一个settings.php文件,我想在其中定义一堆常量,比如我的数据库连接信息、目录结构信息、电子邮件地址等等。这将是一个集中位置,可以保存我所有的重要信息。实现配置类的最佳方式是什么,以便我的Controller和模型的每个基类只能访问它们需要的配置变量?例如,我的模型基类应该可以访问数据库连接信息。基本上,我只是想问问任何人如何在不声明全局变量的情况下完全滚动他们自己的MVC设置来处理配置信息,就像我们过去在程序时代那样。谢谢。

php - 如何将模型加载到 MVC 中的 Controller 中

我正在构建一个轻量级MVC,主要用于学习过程,但我希望它足够好以最终使用。下面是基本Controller外观的基本示例/演示,我们假设URI已被处理并路由到此Controller和这2个方法。1)我需要从数据库/缓存/等获取数据...在我的模型类中,我只需要有关如何将我的模型加载到下面的示例Controller中的帮助,您可以看到我在下面添加了这个$profileData=$this->model->getProfile($userId)只是编造的,不存在的,我怎么能得到这样的东西呢?或者我应该以不同的方式将模型加载到类中吗?2)许多页面都需要用户登录网站。我是否应该在Controll

php - MVC架构中,密码加密应该在哪里进行

我正致力于在一个中等规模的PHPCodeIgniter网站上创建基本的密码安全性。我需要开始加密保存到数据库中的密码。可以使用不同的方法插入用户密码,包括CSV导入或个人注册方法。因此,我只想知道在应该加密密码的MVC系统中,正确的级别是什么? 最佳答案 您唯一需要执行此功能的时间是添加新用户或更新现有用户的密码时。这两个功能都应由用户模型执行。例如,像这样的东西:$user=newUser();$user->setName('...');$user->setPassword('...');$user->save();或:$user

php - 理解/改进准系统 MVC 框架

我意识到这个话题已经被反复询问和解决,尽管我已经阅读了无数类似的问题并阅读了无数文章,但我仍然未能捕获一些关键问题......我正在尝试构建我自己的MVC框架用于学习目的并更好地熟悉OOP。这是供个人私有(private)使用的,并不是说这是偷懒的借口,而是我不太关心拥有更强大框架的所有功能。我的目录结构如下:public-index.phpprivate-framework-controllers-models-views-FrontController.php-ModelFactory.php-Router.php-View.php-bootstrap.php我有一个.htacce

php - MVC - 用户输入验证 : controller, 模型或两者

这个问题在这里已经有了答案:validationinmvcphp(2个答案)关闭9年前。我知道这样的问题在stackoverflow上被问过很多次,但即使在阅读了这些之后,我仍然感到困惑。我想通过示例演示问题来明确应该在何处处理表单验证。假设我的网站上有一个表单,其中有一个字段供某人填写并随后提交。该模型希望Controller正确地传递这个值,以便在内部处理该值。该模型通过函数getInput接收输入,它设置了以下规则:输入必须是字符串类型。输入必须大于0且小于或等于100个字符。输入的内容必须与电子邮件地址的模式相匹配。如果这些条件中的任何一个不满足,我想我应该在getInput中

php - MVC/HMVC/PAC 模式中 URL 结构的约定是什么?

在MVC中它像http://www.yourdomain.com/sampleController/sampleAction/如果你只调用/sampleController/那么/sampleController/indexAction/如果你只是调用/然后/indexController/indexAction/触发。当然也有异常(exception),但这或多或少是惯例。Zend有一些smilir。他们称之为模块。它们基本上只是每个包含一个MVC逻辑的文件夹。所以你可以调用/Module1/Controller/Action/。如果你只是调用/Module1/然后/Module1/

php - 在 MVC PHP session 中工作的 google-oauth 库

你好,我想从这里学到一些东西,基本上我希望我的系统的访问权限在谷歌帐户中,我设法以某种方式执行以下操作获取客户端ID、重定向URI、key来自谷歌帐户的身份验证获取token但我觉得我在某些方面做错了,这就是Oauth2callbackclassOauth2callbackextendsCI_Controller{function__construct(){parent::__construct();$this->load->helper('url');$this->load->library('session');require_onceAPPPATH.'libraries/Goog

PHP - 在 MVC 应用程序中将 RBAC 和身份验证放在哪里?

这个问题在这里已经有了答案:HowcanIimplementanAccessControlListinmyWebMVCapplication?(3个答案)关闭6年前。我正在开发具有这种结构的MVC应用程序:RequestVFrontControllerRouterVControllerModelVView我还有两个其他组件需要放入此结构中:Authentication:使用$_SESSION全局变量登录用户;RBAC:基于角色的访问控制,可以检查角色是否已授予“资源”(Controller方法)。每个用户都可以拥有任意数量的角色(他们也可以没有)。现在,我需要将这两个组件放入我的应用程