Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak to dobrze zapisać (DRY), Jak powinien wyglądać ten kod?
mimol
post
Post #1





Grupa: Zarejestrowani
Postów: 247
Pomógł: 5
Dołączył: 10.12.2007

Ostrzeżenie: (0%)
-----


  1. $formData= $form->getData();
  2.  
  3. if(isset($formData['status'])) {
  4. $status = $form['status'];
  5. $status = array_shift($status);
  6. $formData['status'] = $status;
  7.  
  8. }
  9. if(isset($formData['user'])) {
  10. $user = $form['user'];
  11. $user = array_shift($user);
  12. $formData['user'] = $user;
  13. }
  14. $form->setData($formData);


Oczywiście może się zdarzyć, że formData['user'] jest nullem
tablica formData ma jeszcze inne pola (np name)
Mam nadzieje, że kod jest zrozumiały. Jak go można lepiej zapisać bez powtarzania się?
//nie chciałbym tworzyć przy tym żadnych dodatkowych klas

Ten post edytował mimol 1.08.2013, 16:28:34
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Posio
post
Post #2





Grupa: Zarejestrowani
Postów: 417
Pomógł: 44
Dołączył: 23.06.2011

Ostrzeżenie: (0%)
-----


Nie wiem czy dobrze i czy o to Ci chodziło ale :

  1. $formData = $form->getData();
  2. foreach($formData as $key => $value) {
  3. $i = array_shift($value);
  4. $formData[$key] = $i;
  5. }
  6. $form->setData($formData);


Pisze z telefonu smile.gif

Ten post edytował Posio 1.08.2013, 17:26:37
Go to the top of the page
+Quote Post
Helid
post
Post #3





Grupa: Zarejestrowani
Postów: 280
Pomógł: 20
Dołączył: 12.12.2007
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----



  1. $fields = array('status', 'user', 'name')
  2.  
  3. $formData= $form->getData();
  4.  
  5. foreach($fields as $field)
  6. {
  7. if(isset($formData[$field])) {
  8. $status = $form[$field];
  9. $status = array_shift($status);
  10. $formData[$field] = $status;
  11.  
  12. }
  13. }
  14. $form->setData($formData);


--------------------
Go to the top of the page
+Quote Post
mimol
post
Post #4





Grupa: Zarejestrowani
Postów: 247
Pomógł: 5
Dołączył: 10.12.2007

Ostrzeżenie: (0%)
-----


Nie za jasono się wyraziłem
tablica formData ma jeszcze inne pola (np name) (Ich nie chce dodykac)

@Posio
'tablica formData ma jeszcze inne pola (np name)' więc twoje rozwiązanie odpada
@Helid o to mi chodziło
Go to the top of the page
+Quote Post
Posio
post
Post #5





Grupa: Zarejestrowani
Postów: 417
Pomógł: 44
Dołączył: 23.06.2011

Ostrzeżenie: (0%)
-----


Cytat
tablica formData ma jeszcze inne pola (np name)


Myślałem że chodzi Ci właśnie żeby "przelecieć" wszystkie smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 15:44