WIP: feature_paste #1
0
migrations/.gitignore
vendored
0
migrations/.gitignore
vendored
0
src/Controller/.gitignore
vendored
0
src/Controller/.gitignore
vendored
|
@ -26,7 +26,7 @@ class PasteController extends AbstractController
|
||||||
$paste->setPublishDate(new \DateTime());
|
$paste->setPublishDate(new \DateTime());
|
||||||
|
|
||||||
if ($paste->isPrivate()) {
|
if ($paste->isPrivate()) {
|
||||||
$paste->setSecret(hash("sha1", random_bytes(25)));
|
$paste->setSecret(hash('sha1', random_bytes(25)));
|
||||||
}
|
}
|
||||||
|
|
||||||
$entityManager->persist($paste);
|
$entityManager->persist($paste);
|
||||||
|
@ -43,7 +43,7 @@ class PasteController extends AbstractController
|
||||||
|
|
||||||
#[Route('/{id}/{secret}')]
|
#[Route('/{id}/{secret}')]
|
||||||
public function show_paste(PasteRepository $pasteRepository, Request $request, string $id, ?string $secret=NULL): Response {
|
public function show_paste(PasteRepository $pasteRepository, Request $request, string $id, ?string $secret=NULL): Response {
|
||||||
$paste = $pasteRepository->findOneBy(["id" => $id, "secret" => $secret]);
|
$paste = $pasteRepository->findOneBy(['id' => $id, 'secret' => $secret]);
|
||||||
$form = $this->createForm(PasteForm::class, $paste);
|
$form = $this->createForm(PasteForm::class, $paste);
|
||||||
|
|
||||||
return $this->render('paste.html.twig', [
|
return $this->render('paste.html.twig', [
|
||||||
|
|||||||
|
|
|
@ -14,18 +14,18 @@ class Paste
|
||||||
#[ORM\Column(nullable: false)]
|
#[ORM\Column(nullable: false)]
|
||||||
private int $id;
|
private int $id;
|
||||||
skobkin
commented
Why not also constructor promotion though? Why not also constructor promotion though?
|
|||||||
|
|
||||||
#[ORM\Column(type: "text", nullable: false)]
|
#[ORM\Column(type: 'text', nullable: false)]
|
||||||
#[Assert\NotBlank]
|
#[Assert\NotBlank]
|
||||||
private string $text;
|
private string $text;
|
||||||
|
|
||||||
#[ORM\Column(type: "boolean", nullable: false)]
|
#[ORM\Column(type: 'boolean', nullable: false)]
|
||||||
#[Assert\Type(\boolean::class)]
|
#[Assert\Type(\boolean::class)]
|
||||||
private bool $private;
|
private bool $private;
|
||||||
|
|
||||||
#[ORM\Column(length: 25, nullable: true)]
|
#[ORM\Column(length: 25, nullable: true)]
|
||||||
skobkin
commented
Why 128? Why 128?
|
|||||||
private ?string $language;
|
private ?string $language;
|
||||||
|
|
||||||
#[ORM\Column(type: "text", nullable: true)]
|
#[ORM\Column(type: 'text', nullable: true)]
|
||||||
private ?string $description;
|
private ?string $description;
|
||||||
|
|
||||||
#[ORM\Column(length: 128, nullable: true)]
|
#[ORM\Column(length: 128, nullable: true)]
|
||||||
|
@ -33,7 +33,7 @@ class Paste
|
||||||
|
|
||||||
#[ORM\Column(length: 128, nullable: false)]
|
#[ORM\Column(length: 128, nullable: false)]
|
||||||
#[Assert\NotBlank]
|
#[Assert\NotBlank]
|
||||||
private string $author = "anonymous";
|
private string $author = 'anonymous';
|
||||||
|
|
||||||
#[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: false)]
|
#[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: false)]
|
||||||
skobkin
commented
You can use You can use `self` as return type hint too.
|
|||||||
#[Assert\Type(\DateTime::class)]
|
#[Assert\Type(\DateTime::class)]
|
||||||
|
|
|
@ -15,14 +15,14 @@ class PasteForm extends AbstractType
|
||||||
{
|
{
|
||||||
public function buildForm(FormBuilderInterface $builder, array $options): void {
|
public function buildForm(FormBuilderInterface $builder, array $options): void {
|
||||||
$builder
|
$builder
|
||||||
->add("language", ChoiceType::class, ["choices" => ["Python" => "python", "PHP" => "php", "Plain text" => NULL]])
|
->add('language', ChoiceType::class, ['choices' => ['Python' => 'python', 'PHP' => 'php', 'Plain text' => NULL]])
|
||||||
->add("description", TextType::class, ["required" => false])
|
->add('description', TextType::class, ['required' => false])
|
||||||
->add("text", TextareaType::class)
|
->add('text', TextareaType::class)
|
||||||
->add("author", TextType::class, ["attr" => ["maxlength" =>128]])
|
->add('author', TextType::class, ['attr' => ['maxlength' =>128]])
|
||||||
->add("filename", TextType::class, ["required" => false, "attr" => ["maxlength" =>128]])
|
->add('filename', TextType::class, ['required' => false, 'attr' => ['maxlength' =>128]])
|
||||||
->add("expirationDate", DateTimeType::class, ["required" => false, "date_widget" => "single_text", "input" => "datetime"])
|
->add('expirationDate', DateTimeType::class, ['required' => false, 'date_widget' => 'single_text', 'input' => 'datetime'])
|
||||||
->add("private", CheckboxType::class, ["required" => false])
|
->add('private', CheckboxType::class, ['required' => false])
|
||||||
->add("save", SubmitType::class)
|
->add('save', SubmitType::class)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
}
|
}
|
0
src/Repository/.gitignore
vendored
0
src/Repository/.gitignore
vendored
Loading…
Reference in a new issue
I'd suggest you implementing Twig extension wih filter and function to use highlighter in the template.