✦ Preferences saved
TYRUS
angel@tyrus : ~$ _
// constructor 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 custom, reparatii, audituri. Fara WordPress. Fara template-uri. Disponibil pentru proiecte. Unelte intr-un singur fisier, fara dependente — si site-uri personalizate care supravietuiesc oricarui trend. Autodidact. Obsesiv. Vamdrup, Danemarca.

Produse Software
Dezvoltator Full-Stack
CI4 & PHP
Game Modder
Numismat
0+ Ani Dev
Experienta
Autodidact din 2014
PHP & JS Full-stack
PHP & JS Full-stack
0 Dependente
Zero balast
Fara composer
Fara npm
Fara baza de date
{ }
0+ Limbaje
Sintaxa activa
PHP, JS, CSS, SQL
Python, Lua, YAML
+ 54 more via CM5
📄
0 Fișier. IDE complet.
PHP File Manager
476 kB single file
CodeMirror 5 IDE
Urca & ruleaza instant
Fișiere Server
📁..
📁application
📁assets
📁uploads
📁writable
📄.env0.3kB
📄.htaccess0.4kB
app.js12.1kB
📦backup.zip38.2kB
🌐index.php75.0kB
🌐manager.php476kB
🎨style.css18.3kB
zip-browser.js9.7kB
↑ încarcă fișier (sau trage & lasă)
tyrus.dk  /  PHP File Manager v1.0.0
🌐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'];
    }
}
Linter112 PHP patterns
Zero deps1 file only
107 LanguagesCodeMirror 5
PHP File Managerv1.0.0
CodeMirror 5Full IDE
107
107 LanguagesEvidentierea sintaxei
PHP & CSS & JSLinter · 112 patterns
ZIP BrowserDrag & Drop
IP BanScut Brute-Force
ENRODK
EN / RO / DK UIZero Reload
PHP & JS Full-stackFull-Stack
CK3 WorkshopSteam Mods
Classical GuitarFingerstyle
Ancient CoinsMedieval Numismatics
1
Single PHP FileZero Dependente
Diff Paralel.bak backup
Mobile · DrawerHaptics
VamdrupDenmark · EU
PHP File Managerv1.0.0
CodeMirror 5Full IDE
107
107 LanguagesSyntax highlight
PHP & CSS & JSLinter · 112 patterns
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 FileZero Dependente
Diff Paralel.bak backup
Mobile · DrawerHaptics
VamdrupDenmark · EU
Produse Software

Unelte de precizie
Intregul tau server, administrat.

Nu un dashboard. Nu un wrapper de framework. Un editor de cod real, browser ZIP, linter si diff — comprimat intr-un singur fisier PHP pe care il pui oriunde si functioneaza. Instant.

Disponibil Acum Fisier Unic PHP 7.0 → 8.4
PHP File Manager
by Tyrus Angel  ·  v1.0.0

Nu un dashboard. Nu un wrapper de framework. Un editor de cod real, browser ZIP, linter si diff — comprimat intr-un singur fisier PHP pe care il pui oriunde si functioneaza. Instant.

“Gestionarea fisierelor de server nu ar trebui sa necesite acces SSH, un VPS sau trei unelte separate. Ar trebui sa necesite exact un fisier — si treizeci de secunde.”

  • Editor de cod CodeMirror 5 — tema Dracula — 107 sintaxe de limbaj (evidențiere sintaxă) + autocompletare
  • 112 tipare PHP, validator proprietati CSS, verificari paranteze JS — cu markeri inline
  • Diff vizual fata de .bak — backup creat automat la fiecare salvare.
  • Browser ZIP cu arbore extensibil, selectie in cascada, extragere drag & drop in orice folder.
  • Blocare IP brute-force — canvas animat horror aratat vizitatorilor blocati.
  • Interfata completa EN / RO / DK — 240+ chei de traducere, comutator animat, zero reincarcari
  • Comparare paralela — Redenumire multipla cu previzualizare — Cautare continut in fisiere.
  • Sertar glisant, meniu contextual long-press, feedback haptic pe mobil
// Ce conține
🔬
Linter Cod
112 tipare PHP, validator proprietati CSS, verificari paranteze JS — cu markeri inline
📦
Browser ZIP
Arbore extensibil, selectie checkbox in cascada, extragere drag & drop in orice folder.
Comparare & Diff
Comparatie fisiere side-by-side + diff vizual .bak cu restaurare cu un click
🔒
Autentificare & Securitate
Autentificare Bcrypt, blocare IP brute-force, timeout sesiune 30 min, log complet activitate
📱
Mobil
Sertar glisant, meniu contextual long-press, feedback haptic pe mobil
🌐
Multilingv
Interfata completa EN / RO / DK — 240+ chei de traducere, comutator animat, zero reincarcari
Redenumire Multipla
Redenumire in lot cu prefix, sufix, gaseste/inlocuieste — previzualizare live per fisier
🔍
Cautare Fisiere
Cautare text in fisiere, grupata pe fisier — click pentru salt la linia exacta
PHP 7.0+CodeMirror 5 Vanilla JSZero deps1 file BcryptZipArchiveDiff
// Alege licenta ta — plata o singura data, a ta pentru totdeauna
Personal
Un singur site al tau
19o singura data
  • 1 site personal
  • Toate functiile incluse
  • Acces pe viata
  • Actualizari gratuite
Cumpara prin
Gumroad LemonSqueezy
POPULAR
Developer
Proiecte personale nelimitate
49o singura data
  • Site-uri proprii nelimitate
  • Toate functiile incluse
  • Acces pe viata
  • Actualizari gratuite
Cumpara prin
Gumroad LemonSqueezy
Agency
Site-uri clienti incluse
99o singura data
  • Nelimitat + site-uri clienti
  • Toate functiile incluse
  • Acces pe viata
  • Actualizari gratuite
Cumpara prin
Gumroad LemonSqueezy
În lucru
Mai multe unelte.
Aceeasi 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 construiesc

Construiesc ce ai nevoie.
De la zero. Fara scurtaturi.

Un dezvoltator full-stack care chiar construieste. Fara agentii, fara intermediari, fara solutii de sertar. Daca il poti descrie precis, il pot construi — sau voi fi sincer daca nu pot.

01 — Foundation
In intregime autodidact.
Pornind de la zero.

Peste un deceniu de constructie — in intregime autodidact, pornind de la zero, fara scurtaturi pe care sa nu le fi inteles mai intai. De la pagini de prezentare la sisteme complete e-commerce in CodeIgniter 4, fiecare proiect primeste acelasi nivel de atentie.

10+ ani · autodidact
02 — Craft
Inteleg de ce se strica lucrurile.

Am reconstruit teme atat de complet incat nu mai seamana cu originalul. Am depanate coduri abandonate de altii. Inteleg cum se strica — si construiesc sa nu se mai strice.

reconstruit · depanate · intarit
03 — Direct
Nu o agentie.
Persoana care scrie codul.

Nu angajezi o agentie. Vorbesti direct cu persoana care scrie codul. Asta schimba calitatea conversatiei si a rezultatului.

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

Construite de la zero sau pe stack-ul tau. Cod curat, fara page builders, fara dependenta 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 silentioase, incarcare lenta, cod invechit, gauri de securitate —Gasesc cauza radacina si o reconstruiesc permanent rezolvata.

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

Reproiectare totala a oricarei teme existente. Am facut-o de suficiente ori incat de obicei nimic din original nu supravietuieste. Asta e ideea.

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 rezervari Unelte interne / CMS REST API personalizat
Serviciu Software
Full-Stack
Proiect

O aplicatie completa de la arhitectura bazei de date pana la ultimul pixel. E-commerce, rezervari, unelte interne, CMS personalizat — orice poate fi descris precis poate fi construit precis.

CI4 MySQL REST API JS Responsive
$ tyrus --process

Patru pasi. Fara exceptii. Fiecare proiect, de fiecare data.

01
Inteleg
tyrus understand --client new
02
Arhitecturez
tyrus architect --no-shortcuts
03
Construiesc
tyrus build --mode deliberate
04
Livrez
tyrus ship --honest
PAS 01 / 04 — INTELEG
tyrus.dk

Unele unelte se instaleaza. Altele se pun pur si simplu — si functioneaza. Acesta este singurul standard dupa care construiesc.

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

Artizanul.
Zece ani. Inca construiesc.

Ma numesc A. Angel Țîru, fara cursuri, fara mentori, sub presiune financiara constanta. Ce stiu a fost construit de la zero, testat in productie si rafinat prin esec.

Numele Tyrus vine din familia mea. Orasul antic Tyrus Tyrus era motorul comertului mediteranean — construit pe meșteșug de precizie si incredere castigata. Acesta este standardul dupa care lucrez, nu cel pe care il proclam.

In octombrie 2025, m-am mutat in Vamdrup, Danemarca impreuna cu sotia mea Claudia si fiicele noastre Julie si Jessica. In februarie 2026, am fondat oficial Tyrus. Construind sub presiune reala. Fara oprire.

I don't build fast. I build corect — si aceste doua lucruri sunt rareori acelasi lucru.

Multilingv
Un fisier. Il urci. Il deschizi. Functioneaza. Complexitatea e inauntru — experienta e imediata.
🔬
Linter Cod
112 tipare de greseli PHP. Logica de selectie ZIP in cascada. Sugestii CSS bazate pe Levenshtein. Nimic nu e aproximativ.
🏛
Contact direct. Fara cozi de tichete, fara agentii, fara boturi. Stii exact cine l-a construit si de ce s-a luat fiecare decizie.
>Contact direct. Fara cozi de tichete, fara agentii, fara boturi. Stii exact cine l-a construit si de ce s-a luat fiecare decizie.
🌍
Facturare conform TVA. Preturi transparente, o singura plata. Fara abonamente, niciodata. Functionez sub legislatia daneza si UE.
Facturare conform TVA. Preturi transparente, o singura plata. Fara abonamente, niciodata. Functionez sub legislatia daneza si UE.
Dincolo de Cod

Nu doar un developer.
Un constructor de lucruri.

Obsesia care modeleaza codul se extinde la orice altceva. Aceeasi rabdare care imi permite sa citesc 8000 de linii de PHP este aceeasi rabdare care imi permite sa identific o moneda romana din secolul II dupa patina sa.

⚔️
Moduri Crusader Kings III
Publicate pe Steam Workshop cu mii de abonati activi.

Modificari de joc pentru Crusader Kings III — lanturi complexe de evenimente, mecanici noi, sisteme reechilibrate. Aceeasi precizie logica ca in cod, aplicata la simulare medievala.

Vezi pe Steam Workshop ↗
🎸
Chitara Clasica
Fingerstyle · Aranjamente proprii · De la varsta de 13 ani

Chitara de la 13 ani. Dupa o pauza lunga, fingerstyle-ul pe chitara clasica m-a captivat complet — acum aranjez piese care nu au fost niciodata transcrise pentru chitara solo. Aceeasi incapatanare. Invatand lucruri pe care nimeni altcineva nu s-a obosit sa le scrie.

Canal YouTube ↗
🪙
Numismatica
Antice & Medievale · De la varsta de 23 ani

Identificarea, fotografierea si documentarea monedelor antice, pieselor medievale, bancnotelor si faleristicii de la varsta de 23 ani. Fiecare piesa primeste documentatie completa indiferent de valoare — pentru ca istoria conteaza mai mult decat pretul.

Viziteaza cjagora.ro ↗
Drumul

Nicio diploma. Niciun mentor. Nicio plasa de siguranta. Doar o traiectorie care a continuat — pentru ca oprirea nu a fost niciodata o optiune reala.
Fiecare pas a contat.

Nicio diploma. Niciun mentor. Nicio plasa de siguranta. Doar o traiectorie care a continuat — pentru ca oprirea nu a fost niciodata o optiune reala.

Despre artizan
“Nu am avut niciodata luxul jumatatilor de masura. Cand construiesti totul singur, fie il construiesti corect — fie il reconstruiesti.”
Despre unelte
“Cel mai bun instrument este cel care dispare. Incetezi sa te gandesti la el — si pur si simplu il folosesti.”
Despre detalii
“Unii oameni sunt deranjati de obsesia cu detaliile. Consider ca e problema lor, nu a mea.”
Despre familie
“Tot ce construiesc este pentru Claudia, Julie si Jessica. Nu e un slogan. E singurul motiv pentru care toate astea conteaza.”
Varsta 10 – 11
Comert inainte ca scoala sa il predea
Ajutam parintii sa vanda diverse lucruri — haine second-hand, lucrate manual, CD-uri si multe altele. Munca nu a fost niciodata optionala — era pur si simplu cum stateau lucrurile. Acea realitate a modelat tot ce a urmat. Primirea unui calculator Pentium II la mana a doua, din partea parintilor, a fost scanteia.
Varsta 13
Prima chitara. Primul cod. Acelasi an.
O chitara ieftina, fara nume, a aprins ceva ce nu s-a mai stins. Curiozitatea pentru IT a inceput in acelasi an. Doua obsesii nascute din aceeasi curiozitate nelinistita.
Varsta 22
Primul site — de la zero, nu dintr-un template
Prima incercare de site — de la zero, nu dintr-un template. Niciun WordPress. Nicio scurtatura. De atunci m-am incapatinat sa fiu total independent — sa nu depind de niciun CMS. Au urmat chinurile, dar au meritat. CMS propriu, control propriu, logica proprie. Acesta nu s-a schimbat niciodata pe niciun proiect de atunci.
Varsta 23
Numismatica ca artizan, nu doar un hobby
O pasiune adanca pentru istorie inca din copilarie — asa ca nu ma limitam sa vand, ci colectionam, studiam, fotografiam fiecare detaliu. Fotografie completa, documentatie completa pe fiecare piesa — indiferent daca s-a vandut cu 3 sau 300 €. Istoria a contat mereu. Construirea unui site in jurul acestei pasiuni a venit natural — cele doua lumi s-au impletit dintotdeauna.
Oct 2025
Danemarca. Nou capitol.
Mutat in Vamdrup, Danemarca cu Claudia, Julie si Jessica. Am investit enorm in aceasta mutare — definitorie, deliberata, la care ne-am gandit de multa vreme. In Romania nu ne-am simtit niciodata cu adevarat acasa. Era timpul acestui pas. Tara noua, inceput nou. Sub presiune financiara reala — construind totusi, pentru ca acesta e singurul mod in care functionez.
Feb 2026
Tyrus — oficial fondat.
Am inregistrat compania. Tyrus este acum real — nu doar un nume pe un fisier. Brandul spre care am construit ani de zile, acum cu o fundatie sub el.
Sa Lucram Impreuna
Un produs. Un site.
Sau ceva complet nou.

Licentiaza PHP File Manager, comanda un site personalizat sau adu-mi o problema care merita rezolvata. Vei vorbi direct cu mine — nu o coada de suport, nu un account manager. O conversatie reala.

Vezi Software →
Raspuns in 24h  ·  Fara obligatii  ·  Vamdrup, Danemarca  ·  UE