我需要设置一个Symfony应用程序的现场演示。使整个symfony应用程序只读
如何将所有内容设置为只读?用户应该能够尝试所有功能,但不能让其他人看到任何持久性更改。
我可以删除INSERT和UPDATE权限给mysql用户,但是当他们试图保存的东西,这将是一个丑陋的错误500 ...
我需要设置一个Symfony应用程序的现场演示。使整个symfony应用程序只读
如何将所有内容设置为只读?用户应该能够尝试所有功能,但不能让其他人看到任何持久性更改。
我可以删除INSERT和UPDATE权限给mysql用户,但是当他们试图保存的东西,这将是一个丑陋的错误500 ...
快速和肮脏的方式,使您的整个应用程序只读。
的appbundle/EventSubscriber/EntitySubscriber.php
namespace AppBundle\EventSubscriber;
use Doctrine\Common\EventSubscriber;
use Doctrine\ORM\Event\PreFlushEventArgs;
class EntitySubscriber implements EventSubscriber
{
public function getSubscribedEvents()
{
return [
'preFlush'
];
}
public function preFlush(PreFlushEventArgs $args)
{
$entityManager = $args->getEntityManager();
$entityManager->clear();
}
}
services.yml
app.entity_subscriber:
class: AppBundle\EventSubscriber\EntitySubscriber
tags:
- { name: doctrine.event_subscriber, connection: default }
我想,你已经成功了。但是,如果没有:
这些或多或少都是简单的方法,它们与平台无关。
根据Symfony应用程序级别进行更改可能有两个缺点之一。你要么不保存任何东西,因此你的演示不能很好地向客户展示。或者你必须对代码进行大量的操作,并在演出结束后立即抛弃这项巨大的工作。
也许你可以使用Session来做到这一点,或者你可以在Symfony中实现的Memcache(一些例子可以在网上找到)。希望这会有所帮助。
不要在数据库中,但利用HTML5客户端存储仍存在与localStorage的例如? https://www.w3schools.com/html/html5_webstorage.asp – mickdev
我不能重写应用程序我今晚只有几个小时的工作:)它必须准备好明天 –
好的...那么基于用户存储所有数据呢?如果登录的用户进行了一些更改,您将拥有通用数据用户自由和个性化数据。这只是为了演示的目的,对吧?无论如何,祝你好运:) – mickdev