本日、在庫管理システムSASO2.4がリリースされました。
以下のリンクからお越しください。
在庫管理システムSASO2.4
フリーロケーションのシンプルな在庫管理システムSASO
bootstrap5を使ったクールなデザイン。
クリーンアーキテクチャとモナドによる美しく※1、そして透明感※2のあるコード。
それが今、あなたの手に。
※1 当店比。
※2 参照透過性のこと。
21世紀のライフスタイルに合った新しい装束 ―
日本標準機構では、日本の装束をカジュアルにアレンジして販売しています。
狩衣(かりぎぬ)、直衣(のうし)、直垂(ひたたれ)などを現代のライフスタイルに合わせてより着やすく、よりカジュアルに。
カジュアル装束の販売は
日本標準機構
本日、在庫管理システムSASO2.4がリリースされました。
以下のリンクからお越しください。
在庫管理システムSASO2.4
フリーロケーションのシンプルな在庫管理システムSASO
bootstrap5を使ったクールなデザイン。
クリーンアーキテクチャとモナドによる美しく※1、そして透明感※2のあるコード。
それが今、あなたの手に。
※1 当店比。
※2 参照透過性のこと。
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
class PostLoadTest extends KernelTestCase
{
/**
* @var Doctrine\ORM\EntityManager
*/
private $em;
protected function setUp()
{
self::bootKernel();
$this->em = static::$kernel->getContainer()
->get('doctrine')
->getManager();
}
public function testPostLoad()
{
$entity = new \Hyoujun\AppBundle\Entity\AnEntity();
//...
$this->em->persist($entity);
$this->em->flush();
self::bootKernel();//ここでプロセスをリフレッシュ。
$loaded = $this->em->getRepository('HyoujunAppBundle:AnEntity')
->find($entity->getId());
//...(postLoadが呼ばれたかを検証)
}
protected function tearDown()
{
parent::tearDown();
$this->em->close();
$this->em = null;
}
}
Symfony\Bundle\FrameworkBundle\Test\KernelTestCase::bootKernel()で、プロセスをリフレッシュすれば、postLoad()が呼ばれる。
use Doctrine\ORM\Event\LifecycleEventArgs;
class EventListener
{
public function postPersist(LifecycleEventArgs $args)
{
$entity = $args->getEntity();
if($entity instanceof Only\In\Listener\Entity) return;
$entityManager = $args->getEntityManager();
$entity = new Only\In\Listener\Entity();
//...
$entityManager->persist($entity);
$entityManager->flush();
}
}
イベントリスナー内で登録されるEntityクラスの登録がイベントの発生源となった場合に、instanceofで判定し、returnすれば良い。
"extra": {
"symfony-app-dir": "app",
"symfony-bin-dir": "bin",
"symfony-var-dir": "var",
"symfony-web-dir": "foo/bar",
"symfony-tests-dir": "tests",
"symfony-assets-install": "relative",
"incenteev-parameters": {
"file": "app/config/parameters.yml"
},
"branch-alias": null
}
2. web/app.php(foo/bar/app.php)の5〜7行目付近でautoload.phpとbootstrap.php.cacheへのパスに「../../」追加:use Symfony\Component\HttpFoundation\Request;
require __DIR__.'/../../vendor/autoload.php';
if (PHP_VERSION_ID < 70000) {
include_once __DIR__.'/../../var/bootstrap.php.cache';
}
$kernel = new AppKernel('prod', false);
//...
3. web/app_dev.php(foo/bar/app_dev.php)の21行目付近でautoload.phpへのパスに「../../」追加:use Symfony\Component\Debug\Debug;
use Symfony\Component\HttpFoundation\Request;
//...
require __DIR__.'/../../vendor/autoload.php';
Debug::enable();
$kernel = new AppKernel('dev', true);
if (PHP_VERSION_ID < 70000) {
$kernel->loadClassCache();
}
//...
$ HTTPDUSER=$(ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1) $ sudo setfacl -ndR -m u:"$HTTPDUSER":rwX -m u:$(whoami):rwX var $ sudo setfacl -nR -m u:"$HTTPDUSER":rwX -m u:$(whoami):rwX varとなるようだ。
$ sudo chmod -R 777 varでもいいかと思いきや、キャッシュを削除するたびにこのコマンドを打たなかればならなかったような記憶がある。