Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> parser BBcode - start
Forti
post
Post #1





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


W sobote zacząłem pisać własny bbcode dla symfony. Projekt będzie na licencji MIT.

Cechy gotowe:

- bold
- italic
- underline
- color

Cechy przewidywane:

- url
- youtube (video)
- img (z możliwością ustawiania wymiarów, miniaturki itp.)
- code (coś podobnego jak jest tutaj, js, php, html/css z odpowiednim kolorowaniem - na razie to tylko pomysł, nie wiem czy go wprowadze)

Pomysły:

1. może coś do obsługi bootstrap (możliwość wyłączenia/włączenia w app/config/config.yml), typu:
- [modal=...]coś tam[/modal] i otwieranie jakiegoś standardowego modalu - assety mogą instalować się nie zależnie od projektu, tak jak z innymi bundlami dostępnymi w necie
- kilka innych mniejszych "ideas"


W kodzie nie jestem pros. Programuje od kwiernia (?) zeszłego roku, od ponad 3 miesięcy na etacie w symfony. Gdy pisałem własne forum to miałem problem właśnie z bbcode. W końcu wykorzystałem i przerobiłem parser Wookie'go z forum.php.pl.

Link do github:

https://github.com/Fortidude/bbcode/tree/feature/basic


Jakieś sugestie / pomysły? Całość docelowo będzie jako standard dla mojego forum.


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


  1. if (strpos($this->text, $tag))


musisz dać porównanie do !== false inaczej jak ktoś da na początku to nie sparsuje.
Go to the top of the page
+Quote Post
Forti
post
Post #3





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


o, a to ciekawe smile.gif aż muszę sprawdzić. Testy źle zrobiłem wink.gif


edit:

faktycznie, miałeś racje wink.gif

Ten post edytował Forti 10.02.2015, 20:44:21


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
by_ikar
post
Post #4





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Jest w tym trochę błąd logiczny, ponieważ w pętli, w której sprawdzasz czy tag istnieje, nadpisujesz zmienną $result. O ile otwierający tag jak będzie istniał, to będzie $result zwracać false, o tyle jak będzie tag zamykający istnieć, to zwróci true. A zwróci dlatego że ów zmienna zostanie nadpisana. Powinieneś sprawdzać czy zarówno jeden jak i drugi tag istnieje.
Go to the top of the page
+Quote Post
skowron-line
post
Post #5





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


- A po co konstruktor w TagInterface ?
- No i TagB co to za nazwa TagBold albo lepiej BoldTag
- ustawiasz zmienna private $parsed = false (boolean) ale potem zmieniasz ja na stringa przypisujac zmieniony tag

ogólnie kodzik 2/10
fajnie ze testy napisales ale brakuje im troche


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
Forti
post
Post #6





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Cytat
- A po co konstruktor w TagInterface ?

w późniejszym etapie będę przekazywać tam odpowiednie ustawienia z app/config/config.yml symfony. Na razie ustawiam je na sztywno, "aby działało". Będzie można nadpisać widoki, np. zamiast '<a href="', dać '<a class="..." href="'.

Cytat
- No i TagB co to za nazwa TagBold albo lepiej BoldTag

To całkowicie jest to przerobienia. i fakt, taka nazwa klasy była by czytelniejsza.

Cytat
- ustawiasz zmienna private $parsed = false (boolean) ale potem zmieniasz ja na stringa przypisujac zmieniony tag

Faktycznie może być to bezsensu. Taki nawyk mam, że jak tworze zmienna / stałą to ustawiam null lub false. Null lepiej by pasowało może.

Jest troche błędów logicznych i projektowych, ale po to robie to, aby się cały czas rozwijać. Dzięki za spostrzeżenia. Po sporym refactoringu (już mam znacznik url itp.) zrobie testy wydajnościowe.

Cytat
fajnie ze testy napisales ale brakuje im troche

testy są źle ułożone. Najpierw pisałem je, potem kod, jednak i tak troche źle do tego się zabrałem. Za dużo testów, za mało przypadków - powtarzają się zupełnie bezsensu moim zdaniem.

Dzięki za opinie wink.gif Jak ktoś ma jakieś sugestie to chętnie posłucham.

Troche czasu tu nie pisałem wink.gif Dzisiaj dodałem tag url wraz z opcjonalnym parametrem target.

https://github.com/Fortidude/bbcode/tree/de...le/BbcodeBundle

Obecnie pracuję nad youtube.

Ten post edytował Forti 11.02.2015, 10:50:24


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
curryprogrammer
post
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 25.04.2015

Ostrzeżenie: (10%)
X----


pytanie tylko czemu "wymyslasz kolo na nowo"? smile.gif jesli chcesz cwiczyc sie w kodowaniu
pracuj nad czyms oryginalniejszym smile.gif jest chyba z 10 implementacji bbcode, ktore na pewno
beda bic Twoja o glowe smile.gif
Go to the top of the page
+Quote Post
Pyton_000
post
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Wiele bardziej merytorycznych odpowiedzi niż Twoja również a się wypowiadasz.
Paczki tworzy się po to że ich się potrzebuje. A to że ktoś może chcieć coś prostego to tylko plus.
Go to the top of the page
+Quote Post
skowron-line
post
Post #9





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Nie bardzo rozumiem po co nazywasz wszystko *Tag.php
TagUrl.php
AbstractTag.php
Przeczytaj sobie te nazwy na glos i zobaczysz jak bardzo są zle, powinno być Tag (abstrakcja) i Url, Youtube fakt iż jest to w namespace Tags bedzie świadczyło co to robi i do czego jest.


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
Forti
post
Post #10





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Cytat(skowron-line @ 25.04.2015, 20:34:51 ) *
Nie bardzo rozumiem po co nazywasz wszystko *Tag.php
TagUrl.php
AbstractTag.php
Przeczytaj sobie te nazwy na glos i zobaczysz jak bardzo są zle, powinno być Tag (abstrakcja) i Url, Youtube fakt iż jest to w namespace Tags bedzie świadczyło co to robi i do czego jest.



To tam jest szczegół wink.gif


Cytat
pytanie tylko czemu "wymyslasz kolo na nowo"? smile.gif jesli chcesz cwiczyc sie w kodowaniu
pracuj nad czyms oryginalniejszym smile.gif jest chyba z 10 implementacji bbcode, ktore na pewno
beda bic Twoja o glowe smile.gif


Pokaż mi sprawny bundle dla symfony 2.6-2.7, prosty i łątwy w implementacji oraz użytkowaniu.
Dziękuje.


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
curryprogrammer
post
Post #11





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 25.04.2015

Ostrzeżenie: (10%)
X----


Cytat(Forti @ 25.04.2015, 22:14:22 ) *
Pokaż mi sprawny bundle dla symfony 2.6-2.7, prosty i łątwy w implementacji oraz użytkowaniu.
Dziękuje.


jaki framework... takie paczki do niego... biggrin.gif
Go to the top of the page
+Quote Post
Forti
post
Post #12





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Cytat(curryprogrammer @ 25.04.2015, 22:38:58 ) *
jaki framework... takie paczki do niego... biggrin.gif



Z twojej wypowiedzi wnioskuje że uważasz symfony za trudny framework, czy martwy że nie ma żadnego parsera? Przykre wink.gif Zresztą dzisiaj się z tego nie korzysta. Fora umierają, nowe wersje ich praktycznie nie powstają, strony internetowe, portale itp. w komentarzach nie przewidują formatowania tekstu, a tam gdzie to występuje to coraz popularniejszy jest markdown ostatnio.

Symfony jest prostym frameworkiem tylko trzeba poświęcić mu troche czasu. Jak na wszystko w tej branży.


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
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: 22.08.2025 - 07:30