<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>iWorkshop</title>
	<atom:link href="https://iworkshop.hu/feed/" rel="self" type="application/rss+xml" />
	<link>https://iworkshop.hu/</link>
	<description>Mi vagyunk az iWorkshop</description>
	<lastBuildDate>Mon, 30 Mar 2026 09:18:23 +0000</lastBuildDate>
	<language>hu</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Hogyan digitalizáltuk a magyar lótenyésztés adminisztratív és adatkezelési folyamatait</title>
		<link>https://iworkshop.hu/hogyan-digitalizaltuk-a-magyar-lotenyesztes-adminisztrativ-es-adatkezelesi-folyamatait/</link>
		
		<dc:creator><![CDATA[Horváth György]]></dc:creator>
		<pubDate>Sat, 28 Mar 2026 10:15:17 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Esettanulmány]]></category>
		<guid isPermaLink="false">https://iworkshop.hu/?p=2267</guid>

					<description><![CDATA[<p>MLOSZ – LARA rendszer esettanulmány A Magyar Lótenyésztők Országos Szövetsége számára egy olyan komplex digitális rendszert terveztünk és fejlesztettünk, amely képes kezelni a lótenyésztés teljes adminisztratív és adatkezelési folyamatrendszerét — a központi adatbázis szinkronizációjától egészen a napi operatív ügyintézésig. A projekt célja nem egy egyszerű weboldal létrehozása volt, hanem egy skálázható,  [...]</p>
<p>A <a href="https://iworkshop.hu/hogyan-digitalizaltuk-a-magyar-lotenyesztes-adminisztrativ-es-adatkezelesi-folyamatait/">Hogyan digitalizáltuk a magyar lótenyésztés adminisztratív és adatkezelési folyamatait</a> bejegyzés először <a href="https://iworkshop.hu">iWorkshop</a>-én jelent meg.</p>
]]></description>
										<content:encoded><![CDATA[<p><div class="fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;" ><div class="fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap" style="max-width:1248px;margin-left: calc(-4% / 2 );margin-right: calc(-4% / 2 );"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"></div></div></div></div><div class="fusion-fullwidth fullwidth-box fusion-builder-row-2 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;" ><div class="fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap" style="max-width:1248px;margin-left: calc(-4% / 2 );margin-right: calc(-4% / 2 );"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-text fusion-text-1"><h3>MLOSZ – LARA rendszer esettanulmány</h3>
<p>A Magyar Lótenyésztők Országos Szövetsége számára egy olyan komplex digitális rendszert terveztünk és fejlesztettünk, amely képes kezelni a lótenyésztés teljes adminisztratív és adatkezelési folyamatrendszerét — a központi adatbázis szinkronizációjától egészen a napi operatív ügyintézésig.</p>
<p><span id="more-2267"></span></p>
<p>A projekt célja nem egy egyszerű weboldal létrehozása volt, hanem egy skálázható, hosszú távon fenntartható platform, amely kiváltja a manuális folyamatokat és egységes digitális környezetet biztosít a tenyésztők és szervezetek számára.</p>
<p>🎯 <strong>Kiindulási helyzet</strong><br />
A lótenyésztéshez kapcsolódó adatok és folyamatok több, egymástól független rendszerben és jelentős részben manuális módon voltak kezelve.</p>
<p><strong>A főbb kihívások:</strong><br />
központi adatforrás (OLIR) és a felhasználói rendszerek közötti kapcsolat hiánya korlátozott hozzáférés a lóadatokhoz<br />
adminisztratív folyamatok papíralapú vagy fragmentált kezelése nehézkes kommunikáció a szereplők között.</p>
<p>👉 Egyértelmű igény volt egy olyan rendszerre, amely ezeket egységes, online platformon kezeli.</p>
<p>🧠<strong> A megközelítésünk</strong><br />
A projektet nem “weboldalként”, hanem komplex rendszerként kezeltük már az első lépéstől.</p>
<p><strong>A fókusz:</strong></p>
<ul>
<li>skálázható architektúra</li>
<li>domain-alapú adatmodellezés</li>
<li>folyamatos adatszinkronizáció</li>
<li>hosszú távú bővíthetőség</li>
</ul>
<p>A rendszer architektúráját az iWorkshop szakmai vezetése határozta meg, a kivitelezés pedig a Sárkány Informatikai Zrt. csapatával szoros együttműködésben valósult meg.</p>
<p>⚙️ <strong>Technikai kihívások</strong><br />
Nagy volumenű adatkezelés</p>
<p><strong>A rendszernek több százezer – potenciálisan milliós nagyságrendű lóadatot kell kezelnie, beleértve:</strong></p>
<ul>
<li> alapadatokat</li>
<li>tulajdonosi információkat</li>
<li>tenyésztési adatokat</li>
<li>származási kapcsolatokat</li>
</ul>
<p>👉 Ehhez hatékony lekérdezési és adatkezelési stratégiát kellett kialakítani.</p>
<p><strong>Állami rendszerintegráció</strong><br />
A platform egyik központi eleme az OLIR adatbázissal való kapcsolat, amelyet a NÉBIH üzemeltet.</p>
<p><strong>A kihívás:</strong></p>
<ul>
<li>megbízható és folyamatos adatátvitel</li>
<li>konzisztens állapot biztosítása</li>
<li>eltérő rendszerek közötti adatmodell illesztés</li>
</ul>
<p><strong>Komplex relációs adatmodell</strong><br />
A lótenyésztés egyik sajátossága a mélyen hierarchikus származási rendszer.</p>
<p><strong>A platformnak kezelnie kell:</strong></p>
<ul>
<li> több generációs vérvonalakat</li>
<li>összetett kapcsolatrendszereket</li>
<li>visszakereshető történeti adatokat</li>
<li>Valós idejű működés</li>
</ul>
<p><strong>A felhasználók számára kritikus volt, hogy az adatok:</strong></p>
<ul>
<li>naprakészek legyenek</li>
<li>gyorsan elérhetők legyenek</li>
<li>konzisztensen jelenjenek meg minden felületen</li>
</ul>
<p><strong>🏗️ A megoldás</strong><br />
A LARA rendszer egy moduláris, skálázható platformként került kialakításra.</p>
<p><strong>Főbb komponensek:</strong></p>
<ul>
<li>webes felület a felhasználók számára</li>
<li>backend rendszer az üzleti logika kezelésére</li>
<li>szinkronizációs réteg az OLIR integrációhoz</li>
<li>adatbázis a strukturált adatok kezelésére</li>
</ul>
<p><strong>A moduláris felépítés lehetővé teszi:</strong></p>
<ul>
<li> új funkciók gyors bevezetését</li>
<li>különálló domain-ek kezelését</li>
</ul>
<p><strong>hosszú távú rendszerfejlesztést</strong></p>
<ul>
<li>🔑 Fő funkciók</li>
<li>🐎 Lóadatbázis és keresés</li>
<li>részletes lóprofilok</li>
<li>származási vonalak megjelenítése</li>
<li>chip alapú azonosítás és keresés</li>
<li>🏇 Digitális ménes kezelés</li>
</ul>
<p>A <strong>felhasználók</strong> <strong>saját méneseiket</strong> kezelhetik, bővíthetik multimédiás tartalmakkal publikálhatják a rendszerben.</p>
<p>📄 Elektronikus ügyintézés</p>
<p><strong>A platform lefedi a teljes adminisztrációs folyamatot:</strong></p>
<ul>
<li>fedeztetési állomások kezelése</li>
<li>jegykiállítás és nyilvántartás</li>
<li>tulajdonosváltás</li>
<li>ügyfélkapcsolati folyamatok</li>
<li>💼 Piactér és szolgáltatások</li>
<li>lóeladási hirdetések</li>
<li>fedeztetési szolgáltatások</li>
<li>közvetlen kapcsolatfelvétel</li>
<li>💳 Előfizetéses rendszer</li>
<li>ingyenes alapszint</li>
<li>prémium funkciók</li>
<li>skálázható üzleti modell</li>
<li>📈 Eredmények</li>
</ul>
<p><strong>A rendszer bevezetésével:</strong><br />
Jelentősen csökkent a manuális adminisztráció egységes digitális platform jött létre javult az adatok hozzáférhetősége és átláthatósága<br />
egyszerűbbé vált a szereplők közötti együttműködés.</p>
<p>🎨 <strong>Felhasználói élmény: </strong></p>
<p>A design során kiemelt cél volt:</p>
<ul>
<li>az intuitív használat</li>
<li>a gyors kereshetőség</li>
<li>a mobilbarát működés</li>
</ul>
<p><strong>A felület:</strong></p>
<p>reszponzív, modern, sötét témájú, keresésközpontú</p>
<p>🧠 Tanulságok<br />
Az egyik legfontosabb tapasztalat az volt, hogy az ilyen rendszerek esetében:</p>
<p>👉 a siker kulcsa nem a funkciók száma, hanem az architektúra minősége</p>
<p>A megfelelő alapok nélkül: a rendszer nem skálázódik nehezen bővíthető gyorsan technikai adósságba fordul</p>
<p>🚀 Összegzés<br />
A LARA rendszer egy olyan komplex digitális platform, amely: nagy adatvolumen kezelésére képes integrálódik külső (állami) rendszerekkel teljes üzleti folyamatokat fed le hosszú távon is bővíthető.</p>
<p>👉 Ez a projekt jól mutatja, hogyan lehet egy hagyományosan manuális, fragmentált működést modern, skálázható digitális rendszerré alakítani.</p>
</div><div class="fusion-text fusion-text-2"><p>A cikkben szereplő weboldalak:<br />
Magyar Lótenyésztők Országos Szövetsége: <a href="https://mlosz.hu" target="_blank" rel="noopener">mlosz.hu</a><br />
Sárkány Informatikai Zrt.: <a href="https://sarkany.hu" target="_blank" rel="noopener">sarkany.hu</a></p>
</div></div></div></div></div></p>
<p>A <a href="https://iworkshop.hu/hogyan-digitalizaltuk-a-magyar-lotenyesztes-adminisztrativ-es-adatkezelesi-folyamatait/">Hogyan digitalizáltuk a magyar lótenyésztés adminisztratív és adatkezelési folyamatait</a> bejegyzés először <a href="https://iworkshop.hu">iWorkshop</a>-én jelent meg.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Laravel v12.50.0 – 3 újdonság</title>
		<link>https://iworkshop.hu/laravel-12-50/</link>
		
		<dc:creator><![CDATA[Bihacsy László]]></dc:creator>
		<pubDate>Tue, 17 Feb 2026 20:54:56 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Laravel]]></category>
		<category><![CDATA[Release]]></category>
		<guid isPermaLink="false">https://iworkshop.hu/?p=2220</guid>

					<description><![CDATA[<p>Laravel v12.50.0 – 3 újdonság, amit érdemes ismerni  A Laravel csapat kiadta a v12.50.0 verziót, amely több mint 40 pull requestet tartalmaz 20 közreműködőtől. Ebben a cikkben a három legfontosabb, fejlesztői élményt javító újdonságot mutatjuk be.   1. Új hasMany() metódus a Collection-ökön  A collection-ökön eddig is létezett a containsOneItem() és  [...]</p>
<p>A <a href="https://iworkshop.hu/laravel-12-50/">Laravel v12.50.0 – 3 újdonság</a> bejegyzés először <a href="https://iworkshop.hu">iWorkshop</a>-én jelent meg.</p>
]]></description>
										<content:encoded><![CDATA[<div class="fusion-fullwidth fullwidth-box fusion-builder-row-3 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;" ><div class="fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap" style="max-width:1248px;margin-left: calc(-4% / 2 );margin-right: calc(-4% / 2 );"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-2 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-title title fusion-title-1 fusion-sep-none fusion-title-center fusion-title-text fusion-title-size-two" style="--awb-margin-top-small:10px;--awb-margin-right-small:0px;--awb-margin-bottom-small:10px;--awb-margin-left-small:0px;"><h2 class="fusion-title-heading title-heading-center" style="margin:0;">Laravel v12.50.0 – 3 újdonság, amit érdemes ismerni</h2></div><div class="fusion-text fusion-text-3"><p>A Laravel csapat kiadta a v12.50.0 verziót, amely több mint 40 pull requestet tartalmaz 20 közreműködőtől. Ebben a cikkben a három legfontosabb, fejlesztői élményt javító újdonságot mutatjuk be.<span id="more-2220"></span></p>
</div></div></div><div class="fusion-layout-column fusion_builder_column fusion-builder-column-3 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-title title fusion-title-2 fusion-sep-none fusion-title-text fusion-title-size-three" style="--awb-margin-top-small:10px;--awb-margin-right-small:0px;--awb-margin-bottom-small:10px;--awb-margin-left-small:0px;"><h3 class="fusion-title-heading title-heading-left" style="margin:0;">1. Új hasMany() metódus a Collection-ökön</h3></div><div class="fusion-text fusion-text-4"><p>A collection-ökön eddig is létezett a <strong>containsOneItem()</strong> és a <strong>containsManyItems()</strong> metódus, de valljuk be, ezek elég hosszúak és nehezen megjegyezhetők voltak. A v12.50.0-ban két új, tömörebb alternatíva érkezett:</p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-1 > .CodeMirror, .fusion-syntax-highlighter-1 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color1);}.fusion-syntax-highlighter-1 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color2); }.fusion-syntax-highlighter-1 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color8); }</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-1 fusion-syntax-highlighter-theme-light" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color3);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_1" style="font-size:14px;">Copy to Clipboard</span></div><label for="fusion_syntax_highlighter_1" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_1" data-readOnly="nocursor" data-lineNumbers="1" data-lineWrapping="" data-theme="default" data-mode="text/x-php">$collection->hasSole();  // pontosan egy elem van-e?
$collection->hasMany();  // több elem van-e?</textarea></div><div class="fusion-text fusion-text-5"><p>A hasMany() boolean értéket ad vissza, és callback-et is elfogad, ha pontosítani szeretnéd, mire keresel:</p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-2 > .CodeMirror, .fusion-syntax-highlighter-2 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color1);}.fusion-syntax-highlighter-2 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color2); }.fusion-syntax-highlighter-2 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color8); }</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-2 fusion-syntax-highlighter-theme-light" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color3);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_2" style="font-size:14px;">Copy to Clipboard</span></div><label for="fusion_syntax_highlighter_2" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_2" data-readOnly="nocursor" data-lineNumbers="1" data-lineWrapping="" data-theme="default" data-mode="text/x-php">$collection->hasMany(fn ($item) => $item->isActive());</textarea></div><div class="fusion-text fusion-text-6"><p>A régi containsOneItem() és containsManyItems() metódusok <strong>Laravel 13-ban deprecated-té válnak</strong>, úgyhogy érdemes már most átszokni az újakra.</p>
<p><em>Közreműködő: <a href="https://github.com/JosephSilber">@JosephSilber</a> — <a href="https://github.com/laravel/framework/pull/58550">#58550</a></em></p>
</div></div></div><div class="fusion-layout-column fusion_builder_column fusion-builder-column-4 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-title title fusion-title-3 fusion-sep-none fusion-title-text fusion-title-size-three" style="--awb-margin-top-small:10px;--awb-margin-right-small:0px;--awb-margin-bottom-small:10px;--awb-margin-left-small:0px;"><h3 class="fusion-title-heading title-heading-left" style="margin:0;">2. Típusos getterek a Cache facade-on</h3></div><div class="fusion-text fusion-text-7"><p>A Config facade-on már régóta elérhetők a típusos getterek (getString(), getInteger() stb.), amelyek biztosítják, hogy a visszakapott érték a várt típusú legyen. Most ez a Cache facade-ra is megérkezett:</p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-3 > .CodeMirror, .fusion-syntax-highlighter-3 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color1);}.fusion-syntax-highlighter-3 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color2); }.fusion-syntax-highlighter-3 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color8); }</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-3 fusion-syntax-highlighter-theme-light" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color3);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_3" style="font-size:14px;">Copy to Clipboard</span></div><label for="fusion_syntax_highlighter_3" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_3" data-readOnly="nocursor" data-lineNumbers="1" data-lineWrapping="" data-theme="default" data-mode="text/x-php">// Adat beállítása
Cache::put('username', 'Christoph');

// Hagyományos lekérés — bármit visszaadhat
Cache::get('username');

// Típusos lekérés — garantáltan string
Cache::getString('username'); // ✅ működik

// Ha integer-t várnánk — kivételt dob
Cache::getInteger('username'); // ❌ nem string → hiba</textarea></div><div class="fusion-text fusion-text-8"><p>Ez egy extra biztonsági réteg, ami segít korán elkapni a típushibákat, különösen nagyobb alkalmazásokban, ahol a cache-ben tárolt adatok típusáról könnyű megfeledkezni.<br />
<em>Közreműködő: <a href="https://github.com/ahinkle">@ahinkle</a> — <a href="https://github.com/laravel/framework/pull/58451">#58451</a></em></p>
</div></div></div><div class="fusion-layout-column fusion_builder_column fusion-builder-column-5 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-title title fusion-title-4 fusion-sep-none fusion-title-text fusion-title-size-three" style="--awb-margin-top-small:10px;--awb-margin-right-small:0px;--awb-margin-bottom-small:10px;--awb-margin-left-small:0px;"><h3 class="fusion-title-heading title-heading-left" style="margin:0;">3. Új clamp() metódus a request adatokhoz</h3></div><div class="fusion-text fusion-text-9"><p>Ez a funkció különösen hasznos lapozásnál. Képzeld el, hogy van egy terméklistád, ahol a felhasználó kiválaszthatja, hány elemet lát oldalanként: 10, 25 vagy 50. Eddig semmi nem akadályozta meg, hogy valaki kézzel átírja az URL-ben a per_page paramétert mondjuk 5000-re — ami komoly terhelést okozhat a szerveren.<br />
Az új clamp() metódussal ez egyszerűen megoldható:</p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-4 > .CodeMirror, .fusion-syntax-highlighter-4 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color1);}.fusion-syntax-highlighter-4 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color2); }.fusion-syntax-highlighter-4 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color8); }</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-4 fusion-syntax-highlighter-theme-light" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color3);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_4" style="font-size:14px;">Copy to Clipboard</span></div><label for="fusion_syntax_highlighter_4" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_4" data-readOnly="nocursor" data-lineNumbers="1" data-lineWrapping="" data-theme="default" data-mode="text/x-php">// Régi megoldás
$perPage = $request->integer('per_page');

// Új, biztonságos megoldás
$perPage = $request->clamp('per_page', min: 10, max: 50);</textarea></div><div class="fusion-text fusion-text-10"><p>Ha a felhasználó 5000-et ad meg, az automatikusan 50-re csökken. Ha 1-et, akkor 10-re nő. Nem kell többé kézzel validálni és korlátozni a lapozási értékeket.<br />
<em>Közreműködő: <a href="https://github.com/cosmastech">@cosmastech</a> — <a href="https://github.com/laravel/framework/pull/58608">#58608</a></em></p>
</div></div></div><div class="fusion-layout-column fusion_builder_column fusion-builder-column-6 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-title title fusion-title-5 fusion-sep-none fusion-title-text fusion-title-size-four" style="--awb-margin-top-small:10px;--awb-margin-right-small:0px;--awb-margin-bottom-small:10px;--awb-margin-left-small:0px;"><h4 class="fusion-title-heading title-heading-left" style="margin:0;">Egyéb figyelemre méltó változások</h4></div><div class="fusion-text fusion-text-11"><p>A fenti három kiemelt újdonságon túl a release számos egyéb javítást és fejlesztést is tartalmaz:</p>
</div><ul style="--awb-iconcolor:var(--awb-color5);--awb-textcolor:var(--awb-color1);--awb-line-height:27.2px;--awb-icon-width:27.2px;--awb-icon-height:27.2px;--awb-icon-margin:11.2px;--awb-content-margin:38.4px;--awb-circlecolor:var(--awb-color3);--awb-circle-yes-font-size:14.08px;" class="fusion-checklist fusion-checklist-1 fusion-checklist-default type-icons"><li class="fusion-li-item" style=""><span class="icon-wrapper circle-yes"><i class="fusion-li-icon awb-icon-check" aria-hidden="true"></i></span><div class="fusion-li-item-content"><strong>Unique queued listenerek</strong> — a queue-ba helyezett listenerek mostantól lehetnek egyediek (<a href="https://github.com/laravel/framework/pull/58402">#58402</a>)</div></li><li class="fusion-li-item" style=""><span class="icon-wrapper circle-yes"><i class="fusion-li-icon awb-icon-check" aria-hidden="true"></i></span><div class="fusion-li-item-content">authority() metódus a Support/Uri-hoz — URI authority komponens kezelése (<a href="https://github.com/laravel/framework/pull/58534">#58534</a>)</div></li><li class="fusion-li-item" style=""><span class="icon-wrapper circle-yes"><i class="fusion-li-icon awb-icon-check" aria-hidden="true"></i></span><div class="fusion-li-item-content"><strong>withoutAppends() az Eloquent modelleken</strong> — az appended attribútumok szelektív eltávolítása (<a href="https://github.com/laravel/framework/pull/58552">#58552</a>)</div></li><li class="fusion-li-item" style=""><span class="icon-wrapper circle-yes"><i class="fusion-li-icon awb-icon-check" aria-hidden="true"></i></span><div class="fusion-li-item-content">MorphMap használata model identifierek szerializálásakor (<a href="https://github.com/laravel/framework/pull/58482">#58482</a>)</div></li><li class="fusion-li-item" style=""><span class="icon-wrapper circle-yes"><i class="fusion-li-icon awb-icon-check" aria-hidden="true"></i></span><div class="fusion-li-item-content"><strong>SQL Server grammar javítások</strong> — precíziós ellenőrzések oszloptípusoknál (<a href="https://github.com/laravel/framework/pull/58602">#58602</a>)</div></li><li class="fusion-li-item" style=""><span class="icon-wrapper circle-yes"><i class="fusion-li-icon awb-icon-check" aria-hidden="true"></i></span><div class="fusion-li-item-content"><strong>Notification állapotmegőrzés</strong> a via() metódusból sendNow() -ba (<a href="https://github.com/laravel/framework/pull/58558">#58558</a>)</div></li></ul></div></div><div class="fusion-layout-column fusion_builder_column fusion-builder-column-7 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-text fusion-text-12"><p>A teljes changelog elérhető a <a href="https://github.com/laravel/framework/releases/tag/v12.50.0" target="_blank" rel="noopener">GitHub release oldalon</a>.<br />
Köszönet a 20 közreműködőnek, akik ezt a kiadást lehetővé tették! 🚀</p>
</div></div></div></div></div>
<p>A <a href="https://iworkshop.hu/laravel-12-50/">Laravel v12.50.0 – 3 újdonság</a> bejegyzés először <a href="https://iworkshop.hu">iWorkshop</a>-én jelent meg.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Partner Vs programozó</title>
		<link>https://iworkshop.hu/partner-vs-programozo/</link>
		
		<dc:creator><![CDATA[Bihacsy László]]></dc:creator>
		<pubDate>Mon, 16 Feb 2026 19:00:44 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<guid isPermaLink="false">https://iworkshop.hu/?p=2199</guid>

					<description><![CDATA[<p>Miért van szükséged technológiai partnerre, nem csak programozóra?  Ha a digitális fejlesztésre úgy tekintesz, mint egy megrendelésre a boltban – „kérek egy weboldalt, köszi" – akkor valószínűleg nem azt fogod kapni, amire igazán szükséged van. Egy fejlesztő megír egy funkciót. Egy technológiai partner megérti, hogy miért van rá szükséged – és azt is  [...]</p>
<p>A <a href="https://iworkshop.hu/partner-vs-programozo/">Partner Vs programozó</a> bejegyzés először <a href="https://iworkshop.hu">iWorkshop</a>-én jelent meg.</p>
]]></description>
										<content:encoded><![CDATA[<div class="fusion-fullwidth fullwidth-box fusion-builder-row-4 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;" ><div class="fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap" style="max-width:1248px;margin-left: calc(-4% / 2 );margin-right: calc(-4% / 2 );"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-8 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-title title fusion-title-6 fusion-sep-none fusion-title-center fusion-title-text fusion-title-size-two" style="--awb-margin-top-small:10px;--awb-margin-right-small:0px;--awb-margin-bottom-small:10px;--awb-margin-left-small:0px;"><h2 class="fusion-title-heading title-heading-center" style="margin:0;">Miért van szükséged technológiai partnerre, nem csak programozóra?</h2></div><div class="fusion-text fusion-text-13"><p><em>Ha a digitális fejlesztésre úgy tekintesz, mint egy megrendelésre a boltban – „kérek egy weboldalt, köszi&#8221; – akkor valószínűleg nem azt fogod kapni, amire igazán szükséged van.</em></p>
<p>Egy fejlesztő megír egy funkciót. Egy technológiai partner megérti, hogy miért van rá szükséged – és azt is megmondja, ha nincs.<br />
Ez a különbség nem árnyalatnyi. Ez dönti el, hogy a fejlesztésed befektetés lesz, vagy pénzkidobás.</p>
</div><div class="fusion-separator fusion-full-width-sep" style="align-self: center;margin-left: auto;margin-right: auto;margin-top:30px;margin-bottom:30px;width:100%;"><div class="fusion-separator-border sep-double" style="--awb-height:20px;--awb-amount:20px;--awb-sep-color:var(--awb-color1);border-color:var(--awb-color1);border-top-width:1px;border-bottom-width:1px;"></div></div><div class="fusion-text fusion-text-14"><h3><strong>A „megrendelem, megkapom&#8221; csapda</strong></h3>
<p>A legtöbb KKV így gondolkodik a digitális fejlesztésről: van egy elképzelés, keresnek rá egy programozót vagy egy céget, megrendelik, kifizetik, és reménykednek, hogy jó lesz.</p>
<p>Ez a modell két helyen szokott eltörni.</p>
<p>Az első probléma, hogy a megrendelő ritkán tudja pontosan, mire van szüksége. Nem azért, mert nem ért a saját üzletéhez – pont ellenkezőleg. De az üzleti problémát lefordítani műszaki feladatra nem egyszerű. „Gyorsabb legyen az ügyfélkiszolgálás&#8221; – ez üzleti igény. De mit jelent ez a gyakorlatban? Automatizált státuszértesítések? Ügyfélportál? CRM-integráció? Vagy mind a három, de más sorrendben?</p>
<p>A második probléma, hogy egy „csak programozó&#8221; nem fogja feltenni ezeket a kérdéseket. Ő azt csinálja, amit kérnek tőle. Ha azt mondod, „legyen egy űrlap&#8221;, lesz egy űrlap. Hogy az az űrlap beépül-e a folyamataidba, csökkenti-e az adminisztrációt, vagy csak egy újabb dolog, amit valakinek manuálisan kell kezelnie – az már nem az ő asztala.</p>
<h3><strong>Mi az, amit egy technológiai partner másképp csinál?</strong></h3>
<p>A válasz nem az, hogy „jobban kódol&#8221;. Lehet, hogy igen, de nem ez a lényeg. A különbség a gondolkodásmódban van.</p>
<p><strong>Megérti az üzleti kontextust.</strong> Mielőtt egy sor kódot is írna, megérti, hogyan működik a céged. Hol vannak szűk keresztmetszetek, manuális folyamatok, ismétlődő hibák. Nem a technológiából indul ki, hanem az üzleti problémából.</p>
<p><strong>Kérdez, nem csak végrehajt.</strong> Egy jó technológiai partner néha azt mondja: „Ezt kéritek, de valójában erre van szükségetek.&#8221; Vagy: „Ezt most ne csináljuk meg, mert három hónap múlva úgyis átírjuk.&#8221; Ez nem pimaszság – ez az, ami hosszú távon pénzt és időt spórol.</p>
<p><strong>Rendszerben gondolkodik.</strong> Nem egy weboldalt épít, hanem egy digitális rendszert, ami a céged működését támogatja. Ahol az egyes elemek – weboldal, ügyfélportál, belső admin felület, számlázás, CRM – nem szigetek, hanem összefüggő egész.</p>
<p><strong>Hosszú távon is ott van.</strong> Nem az átadás pillanatában ér véget a kapcsolat. Egy technológiai partner üzemeltet, karbantart, fejleszt tovább. Ismeri a rendszert, ismeri a cégedet, és tudja, merre érdemes lépni.</p>
<h3><strong>A „programozó&#8221; és a „partner&#8221; közötti különbség a gyakorlatban</strong></h3>
<p>Képzeld el, hogy van egy 40 fős szolgáltató céged. Az ügyfeleidet Excelben tartod nyilván, az ajánlatokat Wordben írod, az e-maileket kézzel küldöd ki, a számlázás külön rendszerben megy.</p>
<p><strong>A programozó</strong> megcsinálja, amit kérsz: egy szép weboldalt, egy ajánlatkérő űrlapot, talán egy admin felületet. Átadja, kész.</p>
<p>Három hónap múlva rájössz, hogy az űrlapból érkező adatokat továbbra is kézzel viszed át az Excelbe. Az admin felület nem beszél a számlázóval. Az ügyfelek nem látják a saját státuszukat. Új fejlesztőt keresel, aki újrakezdi.</p>
<p><strong>A technológiai partner</strong> leül veled, végigmegy a folyamataidon, és azt mondja: „Ne weboldallal kezdjük, hanem az ügyfélkezelési folyamattal. Építünk egy rendszert, ahol az ajánlatkéréstől a számlázásig minden egy helyen van. A weboldal ennek a rendszernek a frontend-je lesz – nem fordítva.&#8221;</p>
<p>Nem ugyanaz az ár. De nem is ugyanaz az eredmény.</p>
<h3><strong>Hogyan ismered fel a valódi technológiai partnert?</strong></h3>
<p>Nem a portfólió méretéből és nem az óradíjból. Hanem abból, ahogyan az első beszélgetés zajlik.</p>
<p>Ha az első megbeszélésen a fejlesztő rögtön megoldásokról beszél, az gyanús. Ha viszont a te cégedről kérdez – hogyan dolgoztok, mi fáj, hol veszítetek időt – az jó jel. Az igazi partner először diagnosztizál, aztán javasol.</p>
<p>Figyelj arra is, hogy a fejlesztő mond-e nemet. Ha mindenre azt mondja, „persze, megcsináljuk&#8221;, az nem rugalmasság – az kockázat. Egy partner meg meri mondani, hogy „ez így nem lesz jó&#8221; vagy „erre nincs szükségetek&#8221;.</p>
<p>Végül: kérdezz rá a fejlesztés utáni időszakra. Ha a válasz annyi, hogy „átadjuk, és ha kell valami, keressetek&#8221; – az programozó. Ha a válasz az, hogy „havi szinten átnézzük, hogyan működik, és ha kell, fejlesztünk rajta&#8221; – az partner.</p>
<h3><strong>Összefoglalás: mire érdemes figyelni?</strong></h3>
<p>Egy technológiai partner nem luxus. Egy 10-200 fős, növekvő cégnek ez alapvető szükséglet. Mert ezen a szinten a digitális rendszerek már nem „kiegészítők&#8221; – ezek a cég működésének gerince.</p>
<p>Ha most ott tartasz, hogy érzed: kinőttétek az Excelt, a sablont, a szétszórt rendszereket – ne fejlesztőt keress, hanem partnert. Olyat, aki megérti az üzletedet, és segít rendszerben gondolkodni.</p>
</div><div class="fusion-separator fusion-full-width-sep" style="align-self: center;margin-left: auto;margin-right: auto;margin-top:30px;margin-bottom:30px;width:100%;"><div class="fusion-separator-border sep-double" style="--awb-height:20px;--awb-amount:20px;--awb-sep-color:var(--awb-color1);border-color:var(--awb-color1);border-top-width:1px;border-bottom-width:1px;"></div></div><div class="fusion-text fusion-text-15"><p><em>Az iWorkshop csapata pontosan így dolgozik: nem kódsorokban gondolkodunk, hanem üzleti értékben. Ha érdekel, hogyan tudnánk a ti cégeteket támogatni, <a href="https://iworkshop.hu/kapcsolat">beszélgessünk</a>.</em></p>
</div></div></div></div></div>
<p>A <a href="https://iworkshop.hu/partner-vs-programozo/">Partner Vs programozó</a> bejegyzés először <a href="https://iworkshop.hu">iWorkshop</a>-én jelent meg.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
