Article View: pl.comp.lang.php
Article #232195Re: PHPStorm - jak tworzyć wzorce HTML?
From: Marek S
Date: Sat, 22 Dec 2018 19:48
Date: Sat, 22 Dec 2018 19:48
107 lines
4926 bytes
4926 bytes
W dniu 2018-12-19 o 02:45, Kviat pisze:
> Jeżeli mam pięć różnych podstron na których znajdują się newsy, i w tych
> newsach trzeba coś zmienić, to zmianę nanoszę tylko w jednym pliku, a
> nie w pięciu plikach z szablonami tych pięciu podstron.
>
> Potrzeba zmienić coś w stopce - zmieniam widok stopki. Robię to raz, w
> jednym pliku, a nie w kilkudziesięciu plikach.
> Nie muszę mieć żadnego narzędzia do "updejtowania" zmian na
> kilkadziesiąt plików.
Dobra, to od początku, Ja również nie jestem w swoim podejściu
zobligowany do aktualizowania wszystkich plików - mogę jeden i będzie
działało, ale kompletnie nie o to chodzi. Zobrazuję to na konkretnym
przykładzie. Niech istnieje projekt:
<html>
<head>
...
<head>
<body>
<div>ten blok jest dla view #1<div>
<div>ten blok jest dla view #2<div>
<footer>to jest stopka będąca de facto view #3</footer>
</body>
</html>
Teraz np. w Laravelu robi się jak poniżej "Twoim sposobem":
Layout jest taki:
<html>
<head>
@yield("content1")
@yield("content2")
@yield("content3")
<head>
<body>
Plik view (w uproszczeniu - bez angażowania się w obsługę kontrolerów
itp) będzie następujące:
@extends("home")
@section("content1")
<div>ten blok jest dla view #1<div>
@endsection("content")
@section("content2")
<div>ten blok jest dla view #2<div>
@endsection("content2")
@section("content3")
<footer>to jest stopka będąca de facto view #3</footer>
@endsection("content3")
Skupmy się na powyższym kodzie. Przychodzi do pracy Webdesigner, który
nie ma pojęcia a PHP i frameworkach. Domyśla się, że trzeba zachować
magiczne zaklęcia w kodzie HTML. Otwiera powyższy kod i niczego nie
widzi bo dokument nie jest w pełni wartościowym dokumentem. A komu
szkodziłoby zrobienie czegoś takiego jak niżej?
<html>
<head>
...
<head>
<body>
@extends("home")
@section("content1")
<div>ten blok jest dla view #1<div>
@endsection("content")
@section("content2")
<div>ten blok jest dla view #2<div>
@endsection("content2")
@section("content3")
<footer>to jest stopka będąca de facto view #3</footer>
@endsection("content3")
<head>
<body>
Taki kod zadziała i we frameworku i nieobyty w programowaniu webdesigner
zobaczy pełny układ strony w swoim edytorze wysiwyg. Będzie mógł
wizualnie w nim grzebać. W moim podejściu byłoby stworzenie kodu jak
powyżej, zapisanie go gdzieś na boku projektu (nie uploadowany folder na
serwer produkcyjny), dokonywanie zmian na tym jednym pliku, bo żywcem
widzimy w nim wszelkie sekcje, a potem propagowanie zmian po wszystkich
100 viewsach bazujących na tym projekcie.
Intencja jest taka, że narzędzie programistyczne takie jak DW potrafi
propagować zmiany w poszczególnych sekcjach z zachowaniem tego czym we
viewsach te sekcje zostały wypełnione. Czyli jeśli viewsy zawierają
specyficzne znaczniki typu @section("content3"), to DW je tam pozostawi.
Aby było jeszcze klarowniej: webdesigner zmieni <div>ten blok jest dla
view #2<div> na <div class="dupa">ten blok jest dla view #2<div>, to
tylko zmieni się ten div a znaczniki charakterystyczne dla frameworku
pozostaną nietknięte.
W niczym nie przeszkadza uzupełnianie kodu każdego viewsa o dodatkowy
kod HTML. Usprawnia to także tworzenie viewsów bo w przypadku gdy
webdesigner zmieni <div> na <cokolwiek> to programista musiałby we
wszystkich viewsach to zmienić ręcznie. A po co skoro może w zamian nic
nie robić?
--
Pozdrawiam,
Marek
Technical Details
Message-ID:
<pvm4e7$p27$1@node2.news.atman.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mailReferences:
<pv45bb$8vm$1@node1.news.atman.pl> <e1vd3rwlb1yl.1qwmmqrtxl9ut.dlg@40tude.net> <pv5r8u$smv$1@node1.news.atman.pl> <5c16773c$0$488$65785112@news.neostrada.pl> <pv5u9f$vk9$1@node1.news.atman.pl> <5c1687c1$0$476$65785112@news.neostrada.pl> <pv680u$6bj$1@node2.news.atman.pl> <5c16cdd6$0$485$65785112@news.neostrada.pl> <pv99hk$qb$1@node2.news.atman.pl> <5c18bce4$0$474$65785112@news.neostrada.pl> <pvbmlv$8tv$1@node2.news.atman.pl> <5c19a2ac$0$492$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail From: Marek S <precz@spamowi.com> Newsgroups: pl.comp.lang.php Subject: Re: PHPStorm - jak tworzyć wzorce HTML? Date: Sat, 22 Dec 2018 20:48:21 +0100 Organization: ATMAN - ATM S.A. Lines: 107 Message-ID: <pvm4e7$p27$1@node2.news.atman.pl> References: <pv45bb$8vm$1@node1.news.atman.pl> <e1vd3rwlb1yl.1qwmmqrtxl9ut.dlg@40tude.net> <pv5r8u$smv$1@node1.news.atman.pl> <5c16773c$0$488$65785112@news.neostrada.pl> <pv5u9f$vk9$1@node1.news.atman.pl> <5c1687c1$0$476$65785112@news.neostrada.pl> <pv680u$6bj$1@node2.news.atman.pl> <5c16cdd6$0$485$65785112@news.neostrada.pl> <pv99hk$qb$1@node2.news.atman.pl> <5c18bce4$0$474$65785112@news.neostrada.pl> <pvbmlv$8tv$1@node2.news.atman.pl> <5c19a2ac$0$492$65785112@news.neostrada.pl> NNTP-Posting-Host: 89-70-94-204.dynamic.chello.pl Mime-Version: 1.0 X-Trace: node2.news.atman.pl 1545508103 25671 89.70.94.204 (22 Dec 2018 19:48:23 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Sat, 22 Dec 2018 19:48:23 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.3.3 In-Reply-To: <5c19a2ac$0$492$65785112@news.neostrada.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit