✦ Preferințe salvate
TYRUS
angel@tyrus : ~$ _
// dezvoltator software  ·  artizan web  ·  arhitect digital

Unelte de precizie pentru cei care construiesc web-ul.

Artizanat Digital
tyrus.dk

Dezvoltator web freelance & constructor de software — A. Angel Țîru. Site-uri personalizate, reparații, audituri. Fără WordPress. Fără șabloane. Disponibil pentru proiecte. Unelte într-un singur fișier, fără instalare prin manager de pachete sau CDN terț în timpul rulării, plus site-uri personalizate construite să reziste. Autodidact. Obsesiv. Vamdrup, Danemarca.

Produse Software
Dezvoltator Full-Stack
CI4 & PHP
Game Modder
Numismat
0+ Ani Dev
Experiența
Autodidact din 2014
PHP & JS Full-stack
PHP & JS Full-stack
0 Dependențe
Zero balast
Fără composer
Fără npm
Fără baza de date
{ }
0+ Moduri editor
CodeMirror 5
PHP, JS, CSS, SQL
Python, Lua, YAML
203 mapări după nume/conținut
📄
0 Fișier. IDE complet.
PHP File Manager
1.13 MB · Fișier unic
CodeMirror 5 IDE
Urcă & rulează instant
Fișiere Server
📁..
📁application
📁assets
📁uploads
📁writable
📄.env0.3kB
📄.htaccess0.4kB
app.js12.1kB
📦backup.zip38.2kB
🌐index.php75.0kB
🌐manager.php1.13 MB
🎨style.css18.3kB
zip-browser.js9.7kB
↑ încarcă fișier (sau trage & lasă)
tyrus.dk  /  PHP File Manager v1.0.1
🌐index.php
🌐manager.php
🎨style.css
2515
2516
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
}
// return outside any function - brace depth tracking
$phpLines = explode("\n", $code);
$funcDepths = []; // stack - depth where each function started
$depth = 0; $inString = false; $strChar = '';
foreach ($phpLines as $rli => $rlline) {
    $rltrimmed = trim($rlline);
    if (substr($rltrimmed, 0, 2) === '//' || substr($rltrimmed, 0, 1) === '#') continue;
    $rlen = strlen($rlline); $i = 0;
    while ($i < $rlen) {
        $c = $rlline[$i];
        $next = $rlline[$i+1] ?? '';
        // skip inline comments
        if (!$inString && $c === '/' && $next === '/') break;
        if (!$inString && $c === '#') break;
        // string tracking - don't count braces inside strings
        if (!$inString && ($c === '"' || $c === "'")) {
            $inString = true; $strChar = $c; $i++; continue;
        }
        if ($inString && $c === $strChar && $rlline[$i-1] !== '\\') {
            $inString = false; $i++; continue;
        }
        if ($inString) { $i++; continue; }
        if ($c === '{') {
            $depth++;
            $prevLine = trim($phpLines[$rli-1] ?? '');
            if (preg_match('/\bfunction\s+/i', $rltrimmed) ||
                preg_match('/\bfunction\s+/i', $prevLine))
                $funcDepths[$depth] = true;
        } elseif ($c === '}') {
            unset($funcDepths[$depth]);
            $depth = max(0, $depth-1);
        }
        $i++;
    }
    // depth=0 + no open function = global scope
    if ($depth === 0 && empty($funcDepths) && $rli > 2) {
        if (preg_match('/^\s*return\b/i', $rltrimmed))
            $issues[] = ['type'=>'warning', 'line'=>$rli+1,
                'msg'=>'return outside any function — misplaced code',
                'source'=>'PHP Structure'];
    }
}
Linter118 verificări typo PHP
Single fileFără CDN terț în timpul rulării
203 de mapări verificateCodeMirror 5
PHP File Managerv1.0.1
CodeMirror 5Full IDE
203
203 de mapări verificateEvidențierea sintaxei
PHP & CSS & JS118 verificări typo PHP
ZIP BrowserDrag & Drop
IP BanBlocare anti brute-force
ENRODK
EN / RO / DK UIZero Reload
PHP & JS Full-stackFull-Stack
CK3 WorkshopSteam Mods
Classical GuitarFingerstyle
Ancient CoinsMedieval Numismatics
1
Single PHP FileFără instalare de pachete
Diff Paralel.bak backup
Mobile · DrawerHaptics
VamdrupDenmark · EU
PHP File Managerv1.0.1
CodeMirror 5Full IDE
203
203 de mapări verificateEvidențierea sintaxei
PHP & CSS & JS118 verificări typo PHP
ZIP BrowserDrag & Drop
IP BanBrute-force Shield
ENRODK
EN / RO / DK UIZero Reload
CodeIgniter 4Full-Stack
CK3 WorkshopSteam Mods
Classical GuitarFingerstyle
Ancient CoinsMedieval Numismatics
1
Single PHP FileFără instalare de pachete
Diff Paralel.bak backup
Mobile · DrawerHaptics
VamdrupDenmark · EU
Produse Software

Unelte de precizie
Întregul tău server, administrat.

Un editor de cod real, navigator ZIP, linter și diff într-un singur fișier PHP pe care îl încarci și rulezi direct.

Disponibil Acum Fișier unic PHP 8.0+
PHP File Manager
by Tyrus Angel  ·  v1.0.1

Un editor de cod real, navigator ZIP, linter și diff într-un singur fișier PHP pe care îl încarci și rulezi direct.

“Gestionarea fișierelor de server nu ar trebui să necesite acces SSH, un VPS sau trei unelte separate. Ar trebui să necesite exact un fișier; și treizeci de secunde.”

  • Editor CodeMirror 5 cu tema Dracula, autocompletare și 203 de mapări verificate între nume de fișier și modul de evidențiere
  • 118 verificări pentru greșeli în nume de funcții PHP, validare de proprietăți CSS și verificări de paranteze JS, cu markeri inline
  • Diff vizual față de .bak — versiunea anterioară este salvată automat la fiecare salvare, în locația de backup selectată.
  • Navigator ZIP cu arbore extensibil, selecție în cascadă și extragere drag & drop în orice dosar.
  • Încercările repetate de autentificare eșuate declanșează o blocare temporară a IP-ului timp de 15 minute, cu un ecran dedicat pentru acces blocat.
  • Interfață completă EN / RO / DK; 416 chei UI în fiecare limbă, comutator animat și schimbare fără reîncărcarea paginii
  • Comparare paralelă — Redenumire multiplă cu previzualizare — Căutare conținut în fișiere.
  • Sertar glisant, meniu contextual long-press, feedback haptic pe mobil
// Ce conține
🔬
Linter de cod
118 verificări pentru greșeli în nume de funcții PHP, validare de proprietăți CSS și verificări de paranteze JS, cu markeri inline
📦
Navigator ZIP
Arbore extensibil, selecție prin casete în cascadă și extragere drag & drop în orice dosar.
Comparare & Diff
Comparație alăturată a fișierelor + diff vizual .bak cu restaurare printr-un clic
🔒
Autentificare & Securitate
Autentificare bcrypt, blocare temporară a IP-ului timp de 15 minute după încercări repetate, timeout de sesiune de 30 de minute și jurnal de activitate
📱
Mobil
Sertar glisant, meniu contextual long-press, feedback haptic pe mobil
🌐
Multilingv
Interfață completă EN / RO / DK; 416 chei UI în fiecare limbă, comutator animat și schimbare fără reîncărcarea paginii
Redenumire multiplă
Redenumire în lot cu prefix, sufix, găsește/înlocuiește; previzualizare live per fișier
🔍
Căutare fișiere
Căutare text în fișiere, grupată pe fișier; clic pentru salt la linia exactă
PHP 8.0+CodeMirror 5 Vanilla JSNo Composer/npmFără CDN terț în timpul rulării1 file BcryptZipArchiveDiff
În lucru
Mai multe unelte.
Aceeași filozofie.
Scanner Securitate Cache Manager Task Scheduler Perf Monitor
security.php 1 file cache.php 1 file scheduler.php 1 file monitor.php 1 file
Cum sunt construite proiectele

Construit în jurul nevoilor proiectului.
De la zero. Fără scurtături.

Dezvoltare full-stack independentă, fără agenții, fără intermediari și fără soluții de sertar. Un brief precis primește un răspuns tehnic precis, inclusiv atunci când o cerință nu este realistă.

01 — Foundation
În întregime autodidact.
Pornind de la zero.

Peste un deceniu de construcție — în întregime autodidact, pornind de la zero, fără scurtături pe care să nu le fi înțeles mai întâi. De la pagini de prezentare la sisteme complete e-commerce în CodeIgniter 4, fiecare proiect primește același nivel de atenție.

10+ ani · autodidact
02 — Craft
Cauze reale, nu doar simptome.

Temele pot fi reconstruite până când rezultatul nu mai seamănă cu originalul, iar codurile abandonate pot fi depanate până la cauza reală. Accentul rămâne pe motivul pentru care un sistem eșuează și pe reconstruirea lui astfel încât aceeași problemă să nu revină.

reconstruit · depanat · întărit
03 — Direct
Nu o agenție.
Persoana care scrie codul.

Nu angajezi o agenție. Vorbești direct cu persoana care scrie codul. Asta schimbă calitatea conversației și a rezultatului.

direct · fără intermediari
01 /
<html> <head> <body> <div> ... </html> LIVE
Serviciu Software
Site-uri
Personalizate

Construite de la zero sau pe stack-ul tău. Cod curat, fără page builders, fără dependență WordPress. Exact cum ai descris.

HTML/CSS PHP CI4 MySQL
02 /
NULL 500 ERROR BLOCAT fix → 200 OK ✓ 🔒
Serviciu Software
Reparare & Salvare Site

Layouturi stricate, erori PHP silențioase, încărcare lentă, cod învechit, găuri de securitate —Cauza reală este identificată apoi este reconstruită pentru o remediere durabilă.

Depanare Optimizare Securizare
03 /
ÎNAINTE oldsite.com SITE-UL MEU Clic aici © 2009 All rights reserved DUPĂ tyrus.dk TYRUS ÎNCEPE ACUM © 2026 TYRUS · VAMDRUP
Serviciu Software
Tema
Transformare

Reproiectare totală a oricărei teme existente. Transformarea poate merge suficient de departe încât aproape nimic din original să nu mai rămână. Acesta este scopul.

CSS JS PHP hooks
04 /
MySQL CI4 API HTML/JS DEPLOY // layers Database · MySQL Backend · CI4 REST Frontend · HTML/JS // ce include Platforma e-commerce Sistem de rezervări Unelte interne / CMS REST API personalizat
Serviciu Software
Full-Stack
Proiect

O aplicație completă de la arhitectura bazei de date până la ultimul pixel. E-commerce, rezervări, unelte interne, CMS personalizat — orice poate fi descris precis poate fi construit precis.

CI4 MySQL REST API JS Responsive
$ tyrus --process

Patru pași. Fără excepții. Fiecare proiect, de fiecare dată.

01
Înțeleg
tyrus understand --client new
02
Arhitecturez
tyrus architect --no-shortcuts
03
Construiesc
tyrus build --mode deliberate
04
Livrez
tyrus ship --honest
PAS 01 / 04 — ÎNȚELEG
tyrus.dk

Unele unelte se instalează. Altele se pun pur și simplu — și funcționează. Acesta este singurul standard după care construiesc.

A. Angel Țîru  ·  Founder, Tyrus  ·  Vamdrup, Denmark
Artizanul

Artizanul.
Zece ani. Încă construiesc.

Mă numesc A. Angel Țîru, fără cursuri, fără mentori, sub presiune financiară constantă. Ce știu a fost construit de la zero, testat în producție și rafinat prin eșec.

Numele Tyrus vine din familia mea. Orașul antic Tyrus Tyrus era motorul comerțului mediteranean — construit pe meșteșug de precizie și încredere câștigată. Acesta este standardul după care lucrez, nu cel pe care îl proclam.

În octombrie 2025, m-am mutat în Vamdrup, Danemarca împreună cu soția mea Claudia și fiicele noastre Julie și Jessica. În februarie 2026, am fondat oficial Tyrus. Construind sub presiune reală. Fără oprire.

I don't build fast. I build corect — și aceste două lucruri sunt rareori același lucru.

Multilingv
Un fișier. Îl urci. Îl deschizi. Funcționează. Complexitatea e înăuntru — experiența e imediată.
🔬
Linter de cod
118 verificări pentru greșeli în nume de funcții PHP. Selecție ZIP în cascadă. Sugestii CSS bazate pe Levenshtein. Fiecare număr publicat corespunde unui comportament testat.
🏛
Contact direct. Fără cozi de tichete, fără agenții, fără boturi. Știi exact cine l-a construit și de ce s-a luat fiecare decizie.
Contact direct. Fără cozi de tichete, fără agenții, fără boturi. Știi exact cine l-a construit și de ce s-a luat fiecare decizie.
🌍
Facturare conform TVA. Prețuri transparente, o singură plată. Fără abonamente, niciodată. Funcționez sub legislația daneză și UE.
Facturare conform TVA. Prețuri transparente, o singură plată. Fără abonamente, niciodată. Funcționez sub legislația daneză și UE.
Dincolo de Cod

Nu doar un developer.
Un constructor de lucruri.

Obsesia care modelează codul se extinde la orice altceva. Aceeași răbdare care îmi permite să citesc 8000 de linii de PHP este aceeași răbdare care îmi permite să identific o monedă romană din secolul II după patina sa.

⚔️
Moduri Crusader Kings III
Publicate pe Steam Workshop cu mii de abonați activi.

Modificări de joc pentru Crusader Kings III — lanțuri complexe de evenimente, mecanici noi, sisteme reechilibrate. Aceeași precizie logică ca în cod, aplicată unei simulări medievale.

Vezi pe Steam Workshop ↗
🎸
Chitară clasică
Fingerstyle · Aranjamente proprii · De la vârsta de 13 ani

Chitară de la 13 ani. După o pauză lungă, fingerstyle-ul pe chitară clasică m-a captivat complet — acum aranjez piese care nu au fost niciodată transcrise pentru chitară solo. Aceeași încăpățânare. Învățând lucruri pe care nimeni altcineva nu s-a obosit să le scrie.

Canal YouTube ↗
🪙
Numismatica
Antice & Medievale · De la vârsta de 23 de ani

Identificarea, fotografierea și documentarea monedelor antice, pieselor medievale, bancnotelor și faleristicii de la vârsta de 23 de ani. Fiecare piesă primește documentație completă indiferent de valoare — pentru că istoria contează mai mult decât prețul.

Vizitează cjagora.ro ↗
Drumul

Nicio diplomă. Niciun mentor. Nicio plasă de siguranță. Doar o traiectorie care a continuat — pentru că oprirea nu a fost niciodată o opțiune reală.
Fiecare pas a contat.

Nicio diplomă. Niciun mentor. Nicio plasă de siguranță. Doar o traiectorie care a continuat — pentru că oprirea nu a fost niciodată o opțiune reală.

Despre meșteșug
“Nu am avut niciodată luxul jumătăților de măsură. Când construiești totul singur, fie îl construiești corect — fie îl reconstruiești.”
Despre unelte
“Cel mai bun instrument este cel care dispare. Încetezi să te gândești la el — și pur și simplu îl folosești.”
Despre detalii
“Unii oameni sunt deranjați de obsesia cu detaliile. Consider că e problema lor, nu a mea.”
Despre familie
“Tot ce construiesc este pentru Claudia, Julie și Jessica. Nu e un slogan. E singurul motiv pentru care toate astea contează.”
Vârsta 10 – 11
Comerț înainte ca școala să îl predea
Ajutam părinții să vândă diverse lucruri — haine second-hand, lucrate manual, CD-uri și multe altele. Munca nu a fost niciodată opțională — era pur și simplu cum stăteau lucrurile. Acea realitate a modelat tot ce a urmat. Primirea unui calculator Pentium II la mâna a doua, din partea părinților, a fost scânteia.
Vârsta 13
Prima chitară. Primul cod. Același an.
O chitară ieftină, fără nume, a aprins ceva ce nu s-a mai stins. Curiozitatea pentru IT a început în același an. Două obsesii născute din aceeași curiozitate neliniștită.
Vârsta 22
Primul site — de la zero, nu dintr-un template
Prima încercare de site — de la zero, nu dintr-un template. Niciun WordPress. Nicio scurtătură. De atunci m-am încăpățânat să fiu total independent — să nu depind de niciun CMS. Au urmat chinurile, dar au meritat. CMS propriu, control propriu, logică proprie. Acesta nu s-a schimbat niciodată pe niciun proiect de atunci.
Vârsta 23
Numismatica ca meșteșug, nu doar un hobby
O pasiune adâncă pentru istorie încă din copilărie — așa că nu mă limitam să vând, ci colecționam, studiam și fotografiam fiecare detaliu. Fotografie completă, documentație completă pentru fiecare piesă — indiferent dacă s-a vândut cu 3 sau 300 €. Istoria a contat mereu. Construirea unui site în jurul acestei pasiuni a venit natural — cele două lumi s-au împletit dintotdeauna.
Oct 2025
Danemarca. Nou capitol.
Mutat în Vamdrup, Danemarca cu Claudia, Julie și Jessica. Am investit enorm în această mutare — definitorie, deliberată, la care ne-am gândit de multă vreme. În România nu ne-am simțit niciodată cu adevărat acasă. Era timpul acestui pas. Țară nouă, început nou. Sub presiune financiară reală — construind totuși, pentru că acesta e singurul mod în care funcționez.
Feb 2026
Tyrus — oficial fondat.
Am înregistrat compania. Tyrus este acum real — nu doar un nume pe un fișier. Brandul spre care am construit ani de zile, acum cu o fundație sub el.
Solicitări de proiect
Un produs. Un site.
Sau ceva complet nou.

Licențiază PHP File Manager, comandă un site personalizat sau prezintă o problemă care merită rezolvată. Comunicarea este direct cu dezvoltatorul — fără coadă de suport și fără manager de cont.

Vezi Software →
Răspuns în 24h  ·  Fără obligații  ·  Vamdrup, Danemarca  ·  UE