1. Jak tworzyć funkcje odpowiedzialne za jakieś zadania. Niektórzy wolą małe funkcje (dużo) i każda miałaby swoje specyficzne zadanie. Innie inaczej. Ja osobiście właśnie pisze coś małego i wykorzystuje do tego tzw. system jednofunkcyjno-wielofunkcyjny. Tzn. mam jedną dużą funkcję do której przekazuje maskę bitową tego, co chcę zrobić oraz dane w tablicy. Oczywiście pare masek sobie zpredefiniowałem. Dokładniej wygląda to tak:[php:1:ae2c1cb336]<?php
define( "_MESG_CTL", bindec( "100000000" ) ); // Maska definiujaca maski klasy "mesg"
define( "_MESG_CTL_ALL", bindec( "1" ) ); // Wszystkie wiadomosci dla x
define( "_MESG_CTL_ONE", bindec( "11" ) ); // Pierwsza wiadomosc dla x
define( "_MESG_CTL_ADD", bindec( "111" ) ); // Dodaj wiadomosc dla x od y
define( "_MESG_CTL_DEL", bindec( "1100" ) ); // Skasuj po pokazaniu
define( "_MESG_CTL_GET", bindec( "10100" ) ); // Zwroc wiadomosci dla x
define( "_MESG_CTL_SHOW", bindec( "110100" ) ); // Pokarz wiadomosci dla x
define( "_MESG_CTL_FROM", bindec( "1000100" ) ); // Pobierz wszystkie wiadomosci dla x od y
define( "_MESG_CTL_INFO", bindec( "100000100" ) ); // Tylko powiadom, cze spelnione sa kryteria
define( "MESG_GET", _MESG_CTL ^ _MESG_CTL_ALL ^ _MESG_CTL_GET ^ _MESG_CTL_DEL ^ _MESG_CTL_FROM );
define( "MESG_SEND", _MESG_CTL ^ _MESG_CTL_ADD ^ _MESG_CTL_FROM );
define( "MESG_PRESENT", _MESG_CTL ^ _MESG_CTL_SHOW ^ _MESG_CTL_INFO );
?>[/php:1:ae2c1cb336]Tak wogóle to to ma być system komunikacyjny. I teraz jak już mówłem mam jedną funkcję, która za pomocą tego co dostanie w masce wymaga odpowiedniej tablicy z danymi. Myślicie, że można to lepiej rozwiązać? Jeżeli tak to piszcie, po to tutaj ten temat

2. Jak dzielić funkcje? W moim przypadku jest jedna funkcja która rozdziela zadania a potem je wywołuje w pomniejszych funkcjach, tzn, że w całym obiekcie jest tylko jedna funkcja publiczna. Nie wiem czy to dobrze, ale zainspirowały mnie funkcje typu ioctld z unixów. Jeszcze się zastanawiałem, czy nie umieścić wszystkiego w funkcji głównej, ale uznałem, że dla czytalności lepiej nie.
3. Przekazywanie danych. Jak już powiedziałem przekazuje dane za pomocą masek bitowych oraz tablicy argumentów. Uważacie, że to dobrze? Według mnie jest to dobry pomysł, ponieważ można każdą maskę przerobić oddzielnie.
Taki krótki temacik, ale chciałbym nim tylko zainicjować dyskusję na ten temat.