
Tengo un formulario para subir 5 imagenes, tengo que setear todas en la clase?
Publicado por facundo (185 intervenciones) el 20/09/2017 17:14:47
Hola, los algoritmos que tengo funcionan, pero quiero saber si esta bien hecho asi o si hay una mejor manera para que en la clase no tenga que setear tantas variables de fotos con sus respectivos setters y getters.
Esa es mi duda, esta bien si seteo photo2, photo3, photo4, photo5, $photo2Name, $photo3Name, $photo4Name y $photo5Name con sus respectivos setters y getters? O hay otra manera mejor de hacerlo que opinan??
Aca les dejo el codigo reducido a solo las funciones de las imagenes
Clase para productos de comercio:
Clase para los archivos (No pongo los setters y getters para que no ocupe espacio, se entiende igual no?)
Acá subo la imagen.
Y acá se inserta en la base de datos
Esa es mi duda, esta bien si seteo photo2, photo3, photo4, photo5, $photo2Name, $photo3Name, $photo4Name y $photo5Name con sus respectivos setters y getters? O hay otra manera mejor de hacerlo que opinan??
Aca les dejo el codigo reducido a solo las funciones de las imagenes
Clase para productos de comercio:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class CommerceProduct
{
private $photo1Name;
private $photo1;
//aca seguiria seteando $photo2, $photo3, etc
public function getPhoto()
{
return $this->photo1;
}
public function setPhoto1($photo1)
{
$this->photo1 = $photo1;
return $this;
}
public function getPhoto1Name()
{
return $this->photo1->getName();
}
public function setPhoto1Name($name)
{
return $this->photo1->setName($name);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class File
{
private $name;
private $size;
private $tempName;
public function __construct(array $file)
{
$nombreUnico = md5(time());
$this->setName($nombreUnico .'.jpg'); // todavia no implemente validaciones de imagen...
if (isset($file['size'])) $this->setSize($file['size']);
if (isset($file['tmp_name'])) $this->setTempName($file['tmp_name']);
}
public function move($path = '../images')
{
$destination = $path . '/' . $this->getName();
return move_uploaded_file($this->getTempName(), $destination);
}
}
Acá subo la imagen.
1
2
3
4
5
6
7
8
$conn = new Connection;
if(isset($_POST['merchant'])){
$prd = new CommerceProduct();
$file1 = new File($_FILES['photo1']);
$prd->setPhoto($file1);
if ($file1->move()) {
$prd->setPhotoName($file1->getName()); /*aca podria ir tambien $file1->getName()*/
}
Y acá se inserta en la base de datos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public function addCommerceProduct(CommerceProduct $prd)
{
$sql = "INSERT INTO merchant_products(`photo`)
VALUES (?)";
$conn = new Connection;
$data = [
1 => $prd->getPhotoName(),
];
if ($conn->insert($sql,$data) == false){
throw new PDOException('Hubo un error al intentar agregar el producto, por favor reintentelo');
}
$this->msg = 'Producto agregado';
return true;
}
Valora esta pregunta


0