Added UploadNamespace and UploadedFile entities
Signed-off-by: Gergely POLONKAI (W00d5t0ck) <polesz@w00d5t0ck.info>
This commit is contained in:
		
							
								
								
									
										39
									
								
								app/DoctrineMigrations/Version20120826132126.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								app/DoctrineMigrations/Version20120826132126.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| <?php | ||||
|  | ||||
| namespace Application\Migrations; | ||||
|  | ||||
| use Doctrine\DBAL\Migrations\AbstractMigration, | ||||
|     Doctrine\DBAL\Schema\Schema; | ||||
|  | ||||
| /** | ||||
|  * Auto-generated Migration: Please modify to your need! | ||||
|  */ | ||||
| class Version20120826132126 extends AbstractMigration | ||||
| { | ||||
|     public function up(Schema $schema) | ||||
|     { | ||||
|         // this up() migration is autogenerated, please modify it to your needs | ||||
|         $this->abortIf($this->connection->getDatabasePlatform()->getName() != "mysql"); | ||||
|  | ||||
|         $this->addSql("CREATE TABLE upload_namespaces (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(50) NOT NULL, slug VARCHAR(50) NOT NULL, UNIQUE INDEX UNIQ_32D9781A5E237E06 (name), UNIQUE INDEX UNIQ_32D9781A989D9B62 (slug), PRIMARY KEY(id)) ENGINE = InnoDB"); | ||||
|         $this->addSql("CREATE TABLE uploaded_files (id INT AUTO_INCREMENT NOT NULL, upload_namespace_id INT NOT NULL, filename VARCHAR(100) NOT NULL, mimeType VARCHAR(50) NOT NULL, description LONGTEXT DEFAULT NULL, INDEX IDX_E60EFB5609DE9D8 (upload_namespace_id), UNIQUE INDEX UNIQ_E60EFB5609DE9D83C0BE965 (upload_namespace_id, filename), PRIMARY KEY(id)) ENGINE = InnoDB"); | ||||
|         $this->addSql("ALTER TABLE uploaded_files ADD CONSTRAINT FK_E60EFB5609DE9D8 FOREIGN KEY (upload_namespace_id) REFERENCES upload_namespaces (id)"); | ||||
|         $this->addSql("ALTER TABLE user_data ADD avatar_image_id INT DEFAULT NULL"); | ||||
|         $this->addSql("ALTER TABLE user_data ADD CONSTRAINT FK_D772BFAA5C18B4B1 FOREIGN KEY (avatar_image_id) REFERENCES uploaded_files (id)"); | ||||
|         $this->addSql("CREATE INDEX IDX_D772BFAA5C18B4B1 ON user_data (avatar_image_id)"); | ||||
|     } | ||||
|  | ||||
|     public function down(Schema $schema) | ||||
|     { | ||||
|         // this down() migration is autogenerated, please modify it to your needs | ||||
|         $this->abortIf($this->connection->getDatabasePlatform()->getName() != "mysql"); | ||||
|  | ||||
|         $this->addSql("ALTER TABLE uploaded_files DROP FOREIGN KEY FK_E60EFB5609DE9D8"); | ||||
|         $this->addSql("ALTER TABLE user_data DROP FOREIGN KEY FK_D772BFAA5C18B4B1"); | ||||
|         $this->addSql("DROP TABLE upload_namespaces"); | ||||
|         $this->addSql("DROP TABLE uploaded_files"); | ||||
|         $this->addSql("ALTER TABLE user_data DROP FOREIGN KEY FK_D772BFAA5C18B4B1"); | ||||
|         $this->addSql("DROP INDEX IDX_D772BFAA5C18B4B1 ON user_data"); | ||||
|         $this->addSql("ALTER TABLE user_data DROP avatar_image_id"); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										104
									
								
								src/KekRozsak/FrontBundle/Entity/UploadNamespace.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								src/KekRozsak/FrontBundle/Entity/UploadNamespace.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,104 @@ | ||||
| <?php | ||||
| namespace KekRozsak\FrontBundle\Entity; | ||||
|  | ||||
| use Doctrine\ORM\Mapping as ORM; | ||||
| use Symfony\Component\Validator\Constraints as Assert; | ||||
|  | ||||
| /** | ||||
|  * Namespace support for uploaded files | ||||
|  * | ||||
|  * @author Gergely Polonkai | ||||
|  * | ||||
|  * @ORM\Entity | ||||
|  * @ORM\Table(name="upload_namespaces") | ||||
|  */ | ||||
| class UploadNamespace | ||||
| { | ||||
|     /** | ||||
|      * The ID of the namespace | ||||
|      * | ||||
|      * @var integer $id | ||||
|      * | ||||
|      * @ORM\Id | ||||
|      * @ORM\GeneratedValue(strategy="AUTO") | ||||
|      * @ORM\Column(type="integer") | ||||
|      */ | ||||
|     protected $id; | ||||
|  | ||||
|     /** | ||||
|      * Get id | ||||
|      * | ||||
|      * @return integer | ||||
|      */ | ||||
|     public function getId() | ||||
|     { | ||||
|         return $this->id; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * The name of the namespace. This will be used when displaying the | ||||
|      * namespace list. | ||||
|      * | ||||
|      * @var string $name | ||||
|      * | ||||
|      * @ORM\Column(type="string", length=50, unique=true, nullable=false) | ||||
|      * | ||||
|      * @Assert\NotBlank() | ||||
|      */ | ||||
|     protected $name; | ||||
|  | ||||
|     /** | ||||
|      * Set name | ||||
|      * | ||||
|      * @param  string $name | ||||
|      * @return UploadNamespace | ||||
|      */ | ||||
|     public function setName($name) | ||||
|     { | ||||
|         // TODO: Check if not null! | ||||
|         $this->name = $name; | ||||
|         return $this; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get name | ||||
|      * | ||||
|      * @return string | ||||
|      */ | ||||
|     public function getName() | ||||
|     { | ||||
|         return $this->name; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * The slugified name of the namespace. This will be used in URLs | ||||
|      * | ||||
|      * @var string $slug | ||||
|      * | ||||
|      * @ORM\Column(type="string", length=50, unique=true, nullable=false) | ||||
|      */ | ||||
|     protected $slug; | ||||
|  | ||||
|     /** | ||||
|      * Set slug | ||||
|      * | ||||
|      * @param  string $slug | ||||
|      * @return UploadNamespace | ||||
|      */ | ||||
|     public function setSlug($slug) | ||||
|     { | ||||
|         // TODO: Check if not null! | ||||
|         $this->slug = $slug; | ||||
|         return $this; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get slug | ||||
|      * | ||||
|      * @return string | ||||
|      */ | ||||
|     public function getSlug() | ||||
|     { | ||||
|         return $this->slug; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										181
									
								
								src/KekRozsak/FrontBundle/Entity/UploadedFile.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										181
									
								
								src/KekRozsak/FrontBundle/Entity/UploadedFile.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,181 @@ | ||||
| <?php | ||||
| namespace KekRozsak\FrontBundle\Entity; | ||||
|  | ||||
| use Doctrine\ORM\Mapping as ORM; | ||||
| use Symfony\Component\Validator\Constraints as Assert; | ||||
|  | ||||
| /** | ||||
|  * Description of UploadedFile | ||||
|  * | ||||
|  * @author Gergely Polonkai | ||||
|  * | ||||
|  * @ORM\Entity | ||||
|  * @ORM\Table(name="uploaded_files", uniqueConstraints={ | ||||
|  *     @ORM\UniqueConstraint(columns={"upload_namespace_id", "filename"}) | ||||
|  * }) | ||||
|  */ | ||||
| class UploadedFile | ||||
| { | ||||
|     /** | ||||
|      * The ID of the file | ||||
|      * | ||||
|      * @var integer $id | ||||
|      * | ||||
|      * @ORM\Id | ||||
|      * @ORM\GeneratedValue(strategy="AUTO") | ||||
|      * @ORM\Column(type="integer") | ||||
|      */ | ||||
|     protected $id; | ||||
|  | ||||
|     /** | ||||
|      * Get ID | ||||
|      * | ||||
|      * @return integer | ||||
|      */ | ||||
|     public function getId() | ||||
|     { | ||||
|         return $this->id; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Namespace of the file | ||||
|      * | ||||
|      * @var UploadNamespace $namespace | ||||
|      * | ||||
|      * @ORM\ManyToOne(targetEntity="KekRozsak\FrontBundle\Entity\UploadNamespace") | ||||
|      * @ORM\JoinColumn(name="upload_namespace_id", nullable=false) | ||||
|      */ | ||||
|     protected $namespace; | ||||
|  | ||||
|     /** | ||||
|      * Set namespace | ||||
|      * | ||||
|      * @param  KekRozsak\FrontBundle\Entity\UploadNamespace $namespace | ||||
|      * @return UploadedFile | ||||
|      */ | ||||
|     public function setNamespace(UploadNamespace $namespace) | ||||
|     { | ||||
|         // TODO: Check if not null! | ||||
|         $this->namespace = $namespace; | ||||
|         return $this; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get namespace | ||||
|      * | ||||
|      * @return KekRozsak\FrontBundle\Entity\UploadNamespace | ||||
|      */ | ||||
|     public function getNamespace() | ||||
|     { | ||||
|         return $this->namespace; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * The file name, as seen in the filesystem | ||||
|      * | ||||
|      * @var string $filename | ||||
|      * | ||||
|      * @ORM\Column(type="string", length=100, nullable=false) | ||||
|      */ | ||||
|     protected $filename; | ||||
|  | ||||
|     /** | ||||
|      * Set filename | ||||
|      * | ||||
|      * @param  string $filename | ||||
|      * @return UploadedFile | ||||
|      */ | ||||
|     public function setFilename($filename) | ||||
|     { | ||||
|         // TODO: Check if not null nor empty! | ||||
|         $this->filename = $filename; | ||||
|         return $this; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get filename | ||||
|      * | ||||
|      * @return string | ||||
|      */ | ||||
|     public function getFilename() | ||||
|     { | ||||
|         return $this->filename; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get filename with namespace | ||||
|      * | ||||
|      * @return string | ||||
|      */ | ||||
|     public function getNsFilename() | ||||
|     { | ||||
|         return $this->namespace->getSlug() . DIRECTORY_SEPARATOR . $this->filename; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * MIME type of the file | ||||
|      * | ||||
|      * @var string $mimetype | ||||
|      * | ||||
|      * @ORM\Column(type="string", length=50, nullable=false) | ||||
|      */ | ||||
|     protected $mimeType; | ||||
|  | ||||
|     /** | ||||
|      * Set mimeType | ||||
|      * | ||||
|      * @param  string $mimeType | ||||
|      * @return UploadedFile | ||||
|      */ | ||||
|     public function setMimeType($mimeType) | ||||
|     { | ||||
|         // TODO: Check if not null nor empty! | ||||
|         $this->mimeType = $mimeType; | ||||
|         return $this; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get mimeType | ||||
|      * | ||||
|      * @return string | ||||
|      */ | ||||
|     public function getMimeType() | ||||
|     { | ||||
|         return $this->mimeType; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Description of the file | ||||
|      * | ||||
|      * @var string $description | ||||
|      * | ||||
|      * @ORM\Column(type="text", nullable=true) | ||||
|      */ | ||||
|     protected $description; | ||||
|  | ||||
|     /** | ||||
|      * Set description | ||||
|      * | ||||
|      * @param  string $description | ||||
|      * @return UploadedFile | ||||
|      */ | ||||
|     public function setDescription($description) | ||||
|     { | ||||
|         if ($description === '') { | ||||
|             $description = null; | ||||
|         } | ||||
|  | ||||
|         $this->description = $description; | ||||
|         return $this; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get description | ||||
|      * | ||||
|      * @return string | ||||
|      */ | ||||
|     public function getDescription() | ||||
|     { | ||||
|         return $this->description; | ||||
|     } | ||||
| } | ||||
| @@ -516,4 +516,36 @@ class UserData | ||||
|     { | ||||
|         return $this->favouriteTopics->contains($topic); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * The avatar image of the user | ||||
|      * | ||||
|      * @var UploadedFile $avatarImage | ||||
|      * | ||||
|      * @ORM\ManyToOne(targetEntity="KekRozsak\FrontBundle\Entity\UploadedFile") | ||||
|      * @ORM\JoinColumn(name="avatar_image_id", nullable=true) | ||||
|      */ | ||||
|     protected $avatarImage; | ||||
|  | ||||
|     /** | ||||
|      * Set avaratImage | ||||
|      * | ||||
|      * @param  KekRozsak\FrontBundle\Entity\UploadedFile $avatarImage | ||||
|      * @return UserData | ||||
|      */ | ||||
|     public function setAvatarImage(UploadedFile $avatarImage) | ||||
|     { | ||||
|         $this->avatarImage = $avatarImage; | ||||
|         return $this; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get avatarImage | ||||
|      * | ||||
|      * @return KekRozsak\FrontBundle\Entity\UploadedFile | ||||
|      */ | ||||
|     public function getAvatarImage() | ||||
|     { | ||||
|         return $this->avatarImage; | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user