Wypowiedzi
-
Symfony / Zend zajmą Ci sporo czasu, a początkowe problemy mogą bardzo zniechęcić ( wg mnie by je poznać na niezłym poziomie trzeba z pół roku na etacie robić przy ich użyciu projekt ). Osobiście zacząłbym od Symfony bo jest prostszy niż Zend, ale gdybym nie miał dużo czasu to Laravela bym wybrał.
-
Krystian R.:
Paweł M.:
Jeśli się przyjrzysz im to nikt już nie pisze wszystkiego od zera, tylko te frameworki korzystają z gotowych interfaców, komponentów, które są sprawdzone i dostępne. Skupiają się na tym, abyś mógł w prosty sposób podłączyć inną istniejącą już bibliotekę.
Taktuję bardziej stworzenie własnego frameworka jako naukę obiektowości PHP :)
Także dalej szukam rozwiązania implementacji...
Implementację masz w istniejących frameworkach. Najwięcej się nauczysz korzystając z tych frameworków, grzebiąc w środku i sprawdzając jak działają dane partie kodu. Sama nauka korzystania z bibliotek bardzo dużo daje jak chodzi o naukę obiektowości.
Jeśli upierasz się na pisaniu czegoś od zera to już lepiej napisać prosty CMS ( logowanie, lista użytkowników, lista artykułów ) i wykorzystać w swoim projekcie gotowy framework.Ten post został edytowany przez Autora dnia 22.03.16 o godzinie 16:06 -
Krystian R.:
Pytam jak to się robi w praktyce, bo wydaje mi się, że moje podejście może być mało wydajne...
Mało wydajne w porównaniu do czego? Do Joomli? Do Zenda? Do Symfony? Do doctrine? Będzie dużo szybsze od tego co tutaj wymieniłem więc po co się tym zajmować.
Na rynku jest pełno dobrze napisanych frameworków, niekoniecznie musisz korzystać z zf/symfony. Polecam zapoznać się z :
- Slim
- Silex
- Zend Expressive
Jeśli się przyjrzysz im to nikt już nie pisze wszystkiego od zera, tylko te frameworki korzystają z gotowych interfaców, komponentów, które są sprawdzone i dostępne. Skupiają się na tym, abyś mógł w prosty sposób podłączyć inną istniejącą już bibliotekę. -
Nie każdy się nadaje na nazwijmy to super developera, nie każda firma potrzebuje super developera, jest dużo firm gdzie wystarczy n lepszych osób, a reszta ma klepać kod wg wytycznych. Tylko co to ma do rekrutacji co jest tematem tego tematu to nie wiem.Ten post został edytowany przez Autora dnia 13.01.16 o godzinie 09:20
-
Powtórz sobie na pewno wszystko co dotyczy obiektowości, czym się różni interfejs od klasy abstrakcyjnej, co to jest trait, przestrzenie nazw itd. Najlepiej tutaj http://php.net/manual/en/migration53.php i idziesz z wersjami do góry. Ponadto funkcje anonimowe bym poczytał. Wzorce projektowe poczytaj i do tego najlepiej jakiś przykład gdzie to można używać i dlaczego to jest właśnie fajne.
Na koniec zapytania SQL sobie powtórz w tym na pewno podzapytania i grupowanie danych. -
Nie musisz tego dodawać w każdym kontrolerze. Jest gotowy plugin do kontrolera oraz do widoku.
$this->identity()
Ponadtwo powinieneś ustawiać storage i adapter w fabryce, a nie w kontrolerze. Do kotrolera idzie tylko gotowy AuthenticationService i jest on tylko potrzebny podczas logowania i wylogowania, tak jak w przykładzie z linka co Ci dałem w pierwszym linku.Ten post został edytowany przez Autora dnia 30.11.15 o godzinie 19:23 -
Adrian P.:
W sumie to żadnej struktury nie przyjąłem ;)
Wydawało mi się, że na wzór modułu "Application" (Zend Skeleton Application) trzeba budować każdy moduł i że każdy moduł to odrębna niezależna część CMS'a
Tak, tak, dobrze myślisz :) Możesz tak zrobić. Wydawało mi się, że pytasz o ten element, że chciałbyś, aby w każdej akcji każdego kontrolera wyświetlało się menu, którego opcje są pobierane z bazy... i ten element nazywasz modułem.
Tylko teraz pytanie czy każdy moduł będziesz miał stworzony w ten sposób:
User\src\Controller\SiteUserController.php
User\src\Controller\AdminUserController.php
Blog\src\Controller\SitePostController.php
Blog\src\Controller\SiteCommentController.php
czy:
Admin\src\Controller\UserController.php
Admin\src\Controller\LoginController.php
Admin\src\Controller\BlogPostController.php
Site\src\Controller\UserController.php
Site\src\Controller\BlogPostController.php
a może inaczej jeszcze jakoś ;)Ten post został edytowany przez Autora dnia 24.11.15 o godzinie 14:31 -
jeśli mam kilka modułów, np Users, Articles, Forum, Poll, to chyba lepiej będzie ViewHelper lub fabrykę?
nie do końca rozumiem co masz na myśli i jaką strukturę CMS przyjmiesz, bo jeśli przez moduł masz na myśli moduły jak w Joomla to raczej ViewHelper, ale wg mnie tak nie powinien autorski cms wyglądać, to raczej rozwiązanie, które jest kulą u nogi ;)
Dzięki za informacje, czyli raczej nie ma książki, która by to wszystko zawierała w sobie?
niestety nie kupowałem żadnej, byłem na kursie ( sponsorowany przez UE, tak to kosztuje kilka tysięcy zł ) oraz w pracy miałem od kogo się uczyć, a tak to artykuły, widzę, że na amazon coś tam nawet jest więc możesz poszukać, po polsku raczej na 99% nie znajdziesz -
Adrian P.:
Zagadnienia jakie mnie interesują to:
- system logowania, autologowanie, uwierzytelnianie, uprawnienia, acl
do uwierzytelniania polecam moduł rbac ( https://github.com/ZF-Commons/zfc-rbac/tree/master/docs )
jeśli chodzi o autentykację to zf2 ma wbudoway \Zend\Authentication\AuthenticationService, cała idea polega na napisaniu Adaptera, ewentualnie Storage ( lub skorzystać z dostępnych ).
artykułów jest sporo np.
http://blog.alejandrocelaya.com/2014/08/23/managing-au...
- rozwiązywanie problemów bazodanowych w stylu relacja wiele do wielu czy jeden do wielu (np. systemu tagów, artykuł -> artykul_rel_tag -> tagi)
doctrine ?
- szablony - wstrzykiwanie kodu w którym miejscu aby był dostępny w całym serwisie (chodzi o kalendarium, który widoczny jest na każdej podstronie i pobiera dane z bazy danych), czy też
w Module.php w onBootrap(), ewentualnie PluginManager + trait, lub ViewHelper napisać własny z fabryką
menu w zależności czy gość czy zarejestrowany czy administrator...
to już sobie trzeba napisać te ify
- wielojęzyczność serwisu, fajnie aby było coś takiego że dla domyślnego języka nic nie dodaje a dla każdego innego tak, np. domyślny PL: http://moja-strona.com, DE: http://moja-strona.com/de ENG: http://moja-strona.com/eng
to jest kwestia ustawiania regułki w routingu, a potem obsługa tego, są artykuły na ten temat
- routing
dobrze opisany w dokumentacji, dużo przykładów na sieci
- w zależności od poziomu uprawnień spersonalizowane zapytania MySQL
to już ifami sobie musisz załatwić wg mnie -
Druga sprawa to użycie w kontrolerze
$sm = $this->getServiceLocator();
$this->albumTable = $sm->get('Album\Model\AlbumTable');
Rozumiem, że unikamy jawnego tworzenia obiektów, ale przekazywanie nazwy jako string? Jest jakieś IDE, które potrafi organizować podpowiedzi do tego? Jak była to klasa, to praktycznie każde narzędzie to ogarniało, nie można tego jakoś zastąpić?
możesz np. tak
$sm->get(AlbumTable::class);
ale najlepiej robić do wszystkiego fabrykę i wtedy
// fabryka
class AlbumTableFactory implements FactoryInterface
{
const TABLE_NAME = 'application.model.album_table';
// module.config.php
'service_manager' => [
'factories' => [
AlbumTableFactory::TABLE_NAME=> AlbumTableFactory::class,
// ...
// ...
$sm->get(AlbumTableFactory::TABLE_NAME);
Przy okazji automatycznego tworzenia modeli, chociaż podchodzę sceptycznie do ORM, to spróbowałem z Doctrine. Generalnie spoko, tylko dlaczego do każdego kontrolera muszę doklejać kod, który
Tak się nie powinno robić, kontroler nie powinien korzystać z serviceLocatora, najlepiej tworzyć kontrolery przez fabryką i w konstruktorze wstrzykujesz wszystko co potrzebujesz. I nie wstrzykujesz entityManagera tylko repozytoria, które są Ci potrzebne, a najlepiej przygotować serwis ( który też inicjujesz fabryką, który ma wstrzyknięte potrzebne tutaj repozytoria ) i na nim operujesz ;)
Dzięki temu uniezależniasz się od doctrine, zmienisz sobie kiedyś doctrine na co chcesz i nie musisz nic dotykać w kontrolerach. Serwisy, które przekazujesz do kontrolera są także niezależne od doctrine bo operują na repozytoriach.Ten post został edytowany przez Autora dnia 29.10.15 o godzinie 10:18 -
<?php
$max=1;
print("<input type='checkbox' id='pytanie1$max' name='pytanie1$max' value='1' />");
// lub
print("<input type='checkbox' id='pytanie1" . $max . "' name='pytanie1" . $max . "' value='1' />");
// lub
printf("<input type='checkbox' id='pytanie1%d' name='pytanie1%d' value='1' />", $max, $max);
// lub (co polecam)
?>
<input type='checkbox' id='pytanie1<?= $max; ?>' name='pytanie1<?= $max; ?>' value='1' />
Taki tips, daj sobie na początku każdego skryptu:
ini_set('display_errors', 1);
ini_set('error_reporting', E_ALL);
ini_set('date.timezone', 'Europe/Warsaw');
Ułatwi Ci to rozwiązywanie problemów.Ten post został edytowany przez Autora dnia 28.12.14 o godzinie 17:11 -
Przemysław R.:
z takim podejściem po co optymalizować algorytmy? przecież są lepsze i szybsze komputery a programista może zrobić dowolne coś co spełnia kryteria i jest cool :)
jak to mawiają maniana
Ale co mają do tego algorytmy? To jest całkiem inna dziedzina i nie wiem do czego bijesz. Mówimy o pisaniu w PHP. Trzeba wiedzieć co należy optymalizować, a co nie bo nie jest to opłacalne z punktu widzenia ekonomicznego oraz struktury aplikacji oraz z uwagi na to, że klient nie zdobędzie odpowiedniego ruchu na stronie. To jest temat rzeka i przy każdej aplikacji można osobno debatować na temat czy można i czy potrzeba coś optymalizować. Natomiast z uwagi na moje wieloletnie doświadczenie oraz wymianę doświadczeń z innymi programistami podtrzymuje zdanie, że wybór frameworka, który ma być używany nie powinien bazować na podstawie wydajności, ale potrzeb rynku, popularności danego rozwiązania w firmach. -
Tomasz Z.:
Jeżeli chcesz szybko postawić bloga to w tym momencie na pewno nie wybierzesz phalcona tylko wordpressa, etc. Pewnie w większości przypadków nie ma sensu walczyć o kilka % wydajności.
No nie wiem czy robisz większy portal niż goldenline, który jak wiadomo jest po części w Symfony 2. Ile robiłeś projektów gdzie PHP był problemem? Wszędzie jest problem z bazą, a jak chodzi o wydajność PHP to jest on coraz szybszy, a maszyny coraz lepsze więc patrzenie na wydajność samego frameworka jest w mojej opinii i wielu osób bezcelowa.
Odnośnie pisania części rzeczy w c/c++ to historia facebooka pokazuje, że nie tędy droga, u nich się nie sprawdziło więc po co powielać błędy.
Jeżeli nie potrzebuję PHP do zrobienia aplikacji www, a potrzebuję dużą szybkość, to wybiorę np. Javę/Scalę i Play Framework.
Świetnie, ale zwróć uwagę, że musisz nauczyć się danej technologii oraz znaleźć pracowników, którzy ją znają. Jak już masz pracowników to musieliby nauczyć się nowej technologii co zabiera czas... wg mnie nie tędy droga do osiągnięcia sukcesu.Ten post został edytowany przez Autora dnia 23.12.14 o godzinie 12:36 -
Od biedy da się to zrobić, ale nie wiem czy ma to sens w Twoim przypadku ;)
http://stackoverflow.com/questions/1241728/can-i-try-c...
Zresztą równie dobrze można ten warning przechwytywać i sprawdzać w set_error_handler(). -
Krzysztof M.:
Oto mój własny autorski kod na to zadanie. Coś byście zmienili , żeby było bardziej optymalnie ?
Chyba najpierw powinieneś napisać poprawny kod, a potem optymalizować ;) Brakuje <tr> w kilku miejscach.
Nie skupiaj się na optymalizacji czegoś co szybko się wykonuje, ale na tym by to było przejrzyste, łatwe w modyfikacji / rozbudowie. -
Poszukuję grafika do wykonania strony w stylu paralaksa ( głównej ), podstrony ( najprawdopodobniej 2 widoki ) będą m.in. w układzie dwu kolumnowym ( lewe menu, prawa strona treść ). Zdjęcia dostarczy klient.
- budżet: 900 zł netto ( faktura lub umowa o dzieło ), zaliczka 25%
- czas realizacji: projekt strony głównej najpóźniej w tydzień
- zależy mi na kontakcie w godzinach 18:00 - 20:00 ( telefon lub skype )
- w e-mailu poproszę link do portfolio
zgłoszenia proszę wysyłać na poniższy adres:
kontakt@hyh.pl
dziękujęTen post został edytowany przez Autora dnia 28.09.14 o godzinie 21:13 -
Cytując Twój profil: "Mój czas kosztuje. Nie umawiam się na kawę czy obiad. 150 złotych za pierwszą godzinę i 135 za każdą następną rozpoczętą. Zanim zapytasz, czy jestem zainteresowany, sprawdź, czy Cię stać:
php - 50 PLN/h" ;)Ten post został edytowany przez Autora dnia 01.07.14 o godzinie 12:03 -
Jakub B.:
Zastanawiam się teraz czy znów iść w Joomle czy może Wordpress którego ktoś mi polecał. Ponoć skoro google ma coś z nim wspólnego to lepiej się kataloguje/pozycjonuje (?) w wyszukiwarce. Czy jest coś w tym prawdy? Lub czemu wordpress jest 'beee'?
Nie ma znaczenia czy joomla czy wordpress. Ważne jest to by po wykonaniu strony znaleźć kogoś kto zrobi dobry audyt. Dalej to wdrożenie zmian. Instalacja statystyk, po x czasu znowu zleć audyt pod kontem niespełnionych założeń, dlaczego nie osiągasz tego co chciałeś. Chyba, że osiągasz to tylko się cieszyć. -
Sebastian B.:
Tworząc strony za 1500 zł tworzy się je "taśmowo", jeden layout ma wystarczać na kilkanaście/kilkadziesiąt projektów. Sam system to zazwyczaj jakiś wewnętrzny CMS lub ogólnodostępny w którym zmiany można przeprowadzić bardzo szybko. Wtedy można tworzyć dużą ilość takich projektów w miesiącu i pewnie można na tym zarobić.
Zgadza się, też mam taki typ strony w swojej ofercie. W sumie ciężko mi teraz nawet się kłócić, że nie jest profesjonalna, albo, że klient nie ma wpływu na wygląd ;)
Sądziłem, że rozmawiamy o stronach gdzie projekt i struktura jest tworzona od zera.Ten post został edytowany przez Autora dnia 05.02.14 o godzinie 09:34 -
Anna Maria D.:
Profesjonalna strona internetowa CMS + serwer, hosting, domena kosztuje ok. 1000 zł i klient ma wpływ na jej projekt. Strony standardowe bez możliwości administrowania kosztują ok. 400-600 zł. Poniżej tych kosztów to nie jest profesjonalne tworzenie stron internetowych z pełną gwarancją jakości.
Możesz mi napisać ile osób uczestniczy w takim projekcie? Załóżmy, że wychodzą minimum dwie osoby.
Programista - powiedzmy, że nie trzeba nam wymiatacza, płacimy mu 2000 zł netto, czyli ~ 2800 zł brutto.
Grafik - zlecamy grafikę na zewnątrz, znaleźliśmy jakiegoś taniego grafika co robi nam projekty za 400 zł (jak masz takiego i robi dobre projekty to poproszę o kontakt)
W miesiącu udaje nam się zrobić 4 projekty, pomijam sprawę serwera, załóżmy, że 1500 zł mamy od samej strony. Czyli zysk to 6000 zł miesięcznie.
6000 - 2800 - (4 * 400) = 1600 zł przychodu dla firmy
Czy ten programista zarobił na osobę, która musi kontaktować się z klientem? Na biuro? Na księgową? Na telefony? Na środki trwałe? Powiedz mi jak na tym można zrobić? Co źle policzyłem?