@artilingo/artiframe-cli 1.1.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/artiframe.js +1 -1
- package/core-stubs/docs/de.html +99 -6
- package/core-stubs/docs/en.html +100 -7
- package/core-stubs/docs/es.html +99 -6
- package/core-stubs/docs/fr.html +100 -7
- package/core-stubs/docs/tr.html +95 -2
- package/package.json +2 -1
- package/src/App.php +11 -0
- package/src/Commands/AddCommand.php +18 -4
- package/src/Commands/MakeApiCommand.php +1 -1
- package/src/Commands/MakeClassCommand.php +1 -1
- package/src/Commands/MakeViewCommand.php +1 -1
- package/src/Commands/ModeCommand.php +71 -0
- package/src/Lang/de.php +7 -0
- package/src/Lang/en.php +7 -0
- package/src/Lang/es.php +7 -0
- package/src/Lang/fr.php +7 -0
- package/src/Lang/tr.php +7 -0
- package/stubs/make/api-standart.stub +20 -0
- package/stubs/make/api-switch-case.stub +38 -0
- package/stubs/make/class.stub +25 -0
- package/stubs/make/view.stub +30 -0
- package/stubs/service/phpmailer.stub +143 -0
- package/stubs/service/qrcode.stub +169 -0
- /package/{core-stubs/stubs → stubs}/service/image.stub +0 -0
- /package/{core-stubs/stubs → stubs}/service/iyzico.stub +0 -0
- /package/{core-stubs/stubs → stubs}/service/jwt.stub +0 -0
- /package/{core-stubs/stubs → stubs}/service/pusher.stub +0 -0
- /package/{core-stubs/stubs → stubs}/service/redis.stub +0 -0
- /package/{core-stubs/stubs → stubs}/service/s3.stub +0 -0
- /package/{core-stubs/stubs → stubs}/service/sentry.stub +0 -0
- /package/{core-stubs/stubs → stubs}/service/stripe.stub +0 -0
- /package/{core-stubs/stubs → stubs}/service/twilio.stub +0 -0
package/core-stubs/docs/fr.html
CHANGED
|
@@ -282,10 +282,13 @@
|
|
|
282
282
|
<a href="#cli-go">go</a>
|
|
283
283
|
<a href="#cli-remove">remove</a>
|
|
284
284
|
<a href="#cli-version">version</a>
|
|
285
|
-
<a href="#cli-
|
|
285
|
+
<a href="#cli-mode">mode</a>
|
|
286
|
+
<a href="#cli-serve">serve</a>
|
|
286
287
|
<a href="#cli-add">add</a>
|
|
287
288
|
<div class="sb-cat">Services intégrés</div>
|
|
288
|
-
<a href="#svc-
|
|
289
|
+
<a href="#svc-qrcode">QR Code</a>
|
|
290
|
+
<a href="#svc-phpmailer">PHPMailer (Mail)</a>
|
|
291
|
+
<a href="#svc-iyzico">Iyzico <span class="tag b-core" style="padding: 1px 5px; margin-left: 2px; font-weight: bold;" title="Ücretli/Lisanslı Servis">$</span></a>
|
|
289
292
|
<a href="#svc-stripe">Stripe <span class="tag b-core" style="padding: 1px 5px; margin-left: 2px; font-weight: bold;" title="Ücretli/Lisanslı Servis">$</span></a>
|
|
290
293
|
<a href="#svc-jwt">JWT</a>
|
|
291
294
|
<a href="#svc-image">Image Processing</a>
|
|
@@ -843,7 +846,16 @@ artiframe> <span class="fn">go</span> <span class="st">back</span>
|
|
|
843
846
|
<pre><code>artiframe> <span class="fn">version</span> upgrade minor
|
|
844
847
|
<span class="cm">✔ Sürüm 1.2.0 → 1.3.0 olarak güncellendi.</span></code></pre>
|
|
845
848
|
</section>
|
|
846
|
-
<!--
|
|
849
|
+
<!-- mode -->
|
|
850
|
+
<section id="cli-mode">
|
|
851
|
+
<h2><code>mode</code> <span class="tag b-cli">Commande CLI</span></h2>
|
|
852
|
+
<p>Permet de modifier le mode de fonctionnement du projet (Développement ou Production) avec une seule commande. Cela vous évite d'ouvrir et de modifier manuellement le fichier <code>config/app-version.php</code>.</p>
|
|
853
|
+
<pre><code>artiframe> <span class="fn">mode</span> <span class="st">1</span>
|
|
854
|
+
✅ Passé du mode Prod au mode Debug.</code></pre>
|
|
855
|
+
<p>Vous pouvez utiliser le paramètre <code>0</code> pour passer à la version de production :</p>
|
|
856
|
+
<pre><code>artiframe> <span class="fn">mode</span> <span class="st">0</span></code></pre>
|
|
857
|
+
</section>
|
|
858
|
+
<!-- serve -->
|
|
847
859
|
<section id="cli-serve">
|
|
848
860
|
<h2><code>serve</code> <span class="tag b-cli">CLI Komutu</span></h2>
|
|
849
861
|
<p>Démarre un serveur de développement local (localhost) pour tester le projet. Il lance votre projet en quelques secondes et l'ouvre automatiquement dans votre navigateur, sans avoir besoin d'installer un serveur web supplémentaire (XAMPP, Nginx, etc.).</p>
|
|
@@ -866,9 +878,11 @@ artiframe> <span class="fn">go</span> <span class="st">back</span>
|
|
|
866
878
|
<tr><th>commande</th><th>Forfait Compositeur</th><th>Fichier de classe généré</th></tr>
|
|
867
879
|
</thead>
|
|
868
880
|
<tbody>
|
|
869
|
-
<tr><td><code>add
|
|
881
|
+
<tr><td><code>add phpmailer</code></td><td>phpmailer/phpmailer</td><td><span class="tag b-core">src/Service/Mailer.php</span></td></tr>
|
|
882
|
+
<tr><td><code>add iyzico</code></td><td>iyzipay/iyzipay-php</td><td><span class="tag b-core">src/Service/Iyzico.php</span></td></tr>
|
|
870
883
|
<tr><td><code>add stripe</code></td><td>bande/Stripe-php</td><td><span class="tag b-core">src/Service/Stripe.php</span></td></tr>
|
|
871
|
-
<tr><td><code>add
|
|
884
|
+
<tr><td><code>add qrcode</code></td><td>endroid/qr-code</td><td><span class="tag b-core">src/Service/QrCode.php</span></td></tr>
|
|
885
|
+
<tr><td><code>add jwt</code></td><td>firebase/php-jwt</td><td><span class="tag b-core">src/Auth/JwtAuth.php</span></td></tr>
|
|
872
886
|
<tr><td><code>add image</code></td><td>intervention/image</td><td><span class="tag b-core">src/Service/ImageProcessor.php</span></td></tr>
|
|
873
887
|
<tr><td><code>add s3</code></td><td>aws/aws-sdk-php</td><td><span class="tag b-core">src/Service/S3Storage.php</span></td></tr>
|
|
874
888
|
<tr><td><code>add sentry</code></td><td>Sentry / Sentry</td><td><span class="tag b-core">config/sentry.php</span></td></tr>
|
|
@@ -890,7 +904,7 @@ artiframe> <span class="fn">go</span> <span class="st">back</span>
|
|
|
890
904
|
<tr><td><code>add mpdf</code></td><td>mpdf/mpdf</td></tr>
|
|
891
905
|
<tr><td><code>add dompdf</code></td><td>dompdf/dompdf</td></tr>
|
|
892
906
|
<tr><td><code>add spreadsheet</code></td><td>phpoffice/phpspreadsheet</td></tr>
|
|
893
|
-
|
|
907
|
+
|
|
894
908
|
<tr><td><code>add guzzle</code></td><td>avalerhttp/avaler</td></tr>
|
|
895
909
|
<tr><td><code>add uuid</code></td><td>ramsey/uuid</td></tr>
|
|
896
910
|
<tr><td><code>add carbon</code></td><td>nesbot/carbone</td></tr>
|
|
@@ -906,7 +920,86 @@ artiframe> <span class="fn">go</span> <span class="st">back</span>
|
|
|
906
920
|
<section id="entegre-servisler">
|
|
907
921
|
<h2>Services intégrés (Wrapper) <span class="tag b-core">Stubs</span></h2>
|
|
908
922
|
<p>Au lieu d'utiliser directement les packages populaires, ArtiFrame <strong>Wrapper préconfiguré</strong> Il propose des cours pour votre usage.</p>
|
|
909
|
-
<div class="card" id="svc-
|
|
923
|
+
<div class="card" id="svc-qrcode">
|
|
924
|
+
<h2>QR Code</h2>
|
|
925
|
+
<div class="alert a-info" style="margin-top: 10px; padding: 10px 15px; font-size: 0.85em;"><strong>📌 Classe d'encapsulation (Wrapper):</strong> En exécutant <code>add qrcode</code>, la classe <code>src/Service/QrCode.php</code> est créée.</div>
|
|
926
|
+
<p>Une classe fluide qui masque le processus d'instanciation complexe de la bibliothèque Endroid QR Code.</p>
|
|
927
|
+
|
|
928
|
+
<h3 style="margin-top:20px; margin-bottom:10px; font-size: 1.1em; color: var(--text-color);">Méthodes</h3>
|
|
929
|
+
<ul style="line-height: 1.6; margin-bottom: 20px;">
|
|
930
|
+
<li><code>->generate('Metin')</code> : Démarre la chaîne.</li>
|
|
931
|
+
<li><code>->size(300)</code> : Taille en pixels.</li>
|
|
932
|
+
<li><code>->margin(10)</code> : Marge blanche.</li>
|
|
933
|
+
<li><code>->color('#000000', '#ffffff')</code> : Couleurs au format HEX.</li>
|
|
934
|
+
<li><code>->logo('/path/logo.png', 50, true)</code> : Intègre un logo.</li>
|
|
935
|
+
<li><code>->format('png')</code> : png ou svg.</li>
|
|
936
|
+
<li><code>->save('/path/save.png')</code> : Enregistre le fichier.</li>
|
|
937
|
+
<li><code>->base64()</code> : Retourne en base64.</li>
|
|
938
|
+
<li><code>->output()</code> : Sortie directe vers le navigateur.</li>
|
|
939
|
+
</ul>
|
|
940
|
+
|
|
941
|
+
<h3 style="margin-top:20px; margin-bottom:10px; font-size: 1.1em; color: var(--text-color);">Exemples</h3>
|
|
942
|
+
<pre><code><span class="kw">use</span> <span class="var">App\Service\QrCode</span>;
|
|
943
|
+
|
|
944
|
+
<span class="cm">// Örnek 1: Ekrana HTML Img olarak basma</span>
|
|
945
|
+
<span class="var">$base64</span> = <span class="var">QrCode</span>::generate(<span class="st">'https://artiframe.dev'</span>)
|
|
946
|
+
-><span class="fn">size</span>(400)
|
|
947
|
+
-><span class="fn">logo</span>(<span class="var">$_SERVER</span>[<span class="st">'DOCUMENT_ROOT'</span>] . <span class="st">'/assets/logo.png'</span>)
|
|
948
|
+
-><span class="fn">base64</span>();
|
|
949
|
+
|
|
950
|
+
<span class="kw">echo</span> <span class="st">'<img src="'</span> . <span class="var">$base64</span> . <span class="st">'" alt="QR">'</span>;
|
|
951
|
+
|
|
952
|
+
<span class="cm">// Örnek 2: Fiziksel PNG Olarak Kaydetme</span>
|
|
953
|
+
<span class="var">QrCode</span>::generate(<span class="st">'VCARD Bilgileri'</span>)
|
|
954
|
+
-><span class="fn">color</span>(<span class="st">'#ff0000'</span>, <span class="st">'#ffffff'</span>)
|
|
955
|
+
-><span class="fn">save</span>(<span class="st">'/temp/kullanici_karti.png'</span>);
|
|
956
|
+
|
|
957
|
+
<span class="cm">// Örnek 3: API Endpoint olarak resmi tarayıcıya basma</span>
|
|
958
|
+
<span class="var">QrCode</span>::generate(<span class="st">'https://artilingo.com'</span>)-><span class="fn">output</span>();</code></pre>
|
|
959
|
+
</div>
|
|
960
|
+
|
|
961
|
+
<div class="card" id="svc-phpmailer">
|
|
962
|
+
<h2>PHPMailer (Mail)</h2>
|
|
963
|
+
<div class="alert a-info" style="margin-top: 10px; padding: 10px 15px; font-size: 0.85em;"><strong>📌 Configuration automatique de .env:</strong> Lorsque vous exécutez la commande <code>add phpmailer</code>, les paramètres SMTP sont automatiquement ajoutés à votre fichier <code>.env</code> et la classe <code>src/Service/Mailer.php</code> est créée.</div>
|
|
964
|
+
<p>Une classe d'encapsulation (Wrapper) beaucoup plus moderne, fluide et sécurisée fonctionnant avec la bibliothèque PHPMailer. Toutes les méthodes fournies sont chaînables.</p>
|
|
965
|
+
|
|
966
|
+
<h3 style="margin-top:20px; margin-bottom:10px; font-size: 1.1em; color: var(--text-color);">Méthodes et utilisation</h3>
|
|
967
|
+
<ul style="line-height: 1.6; margin-bottom: 20px;">
|
|
968
|
+
<li><code>->to('mail@adres.com', 'İsim')</code> : Définit à qui l'e-mail sera envoyé.</li>
|
|
969
|
+
<li><code>->cc('mail@adres.com')</code> : Ajoute des destinataires en copie (Carbon Copy).</li>
|
|
970
|
+
<li><code>->bcc('mail@adres.com')</code> : Ajoute des destinataires en copie cachée (BCC). Les destinataires principaux ne peuvent pas voir ces adresses.</li>
|
|
971
|
+
<li><code>->subject('Konu')</code> : Définit l'objet (le titre) de l'e-mail.</li>
|
|
972
|
+
<li><code>->attach('/path/fatura.pdf', 'Isim.pdf')</code> : Ajoute un fichier physique du serveur (ou temp) en tant que pièce jointe dans l'e-mail.</li>
|
|
973
|
+
<li><code>->embedImage('/path/logo.png', 'logo_cid')</code> : Intègre une image dans l'e-mail pour être utilisée en HTML (<code><img src="cid:logo_cid"></code>).</li>
|
|
974
|
+
<li><code>->html('HTML Kodu')</code> : Définit le contenu HTML. Crée automatiquement une version texte brut (AltBody) pour la sécurité.</li>
|
|
975
|
+
<li><code>->text('Düz Metin')</code> : Utilisé si vous souhaitez envoyer l'e-mail strictement en texte brut.</li>
|
|
976
|
+
<li><code>->send()</code> : Termine toutes les opérations chaînées et envoie l'e-mail via SMTP. Lance une Exception en cas d'erreur.</li>
|
|
977
|
+
</ul>
|
|
978
|
+
|
|
979
|
+
<h3 style="margin-top:20px; margin-bottom:10px; font-size: 1.1em; color: var(--text-color);">Exemple avancé : Modèle PHP (View) et pièce jointe dynamique</h3>
|
|
980
|
+
<p>Si vous ne souhaitez pas écrire le contenu HTML de l'e-mail directement dans des chaînes, vous pouvez utiliser <code>ob_start()</code> pour inclure un fichier de modèle PHP externe (contenant des variables) et joindre un PDF :</p>
|
|
981
|
+
<pre><code><span class="kw">use</span> <span class="var">App\Service\Mailer</span>;
|
|
982
|
+
|
|
983
|
+
<span class="cm">// 1. Vos données dynamiques</span>
|
|
984
|
+
<span class="var">$siparisNo</span> = <span class="st">'#90210'</span>;
|
|
985
|
+
<span class="var">$pdfDosyasi</span> = <span class="var">$_SERVER</span>[<span class="st">'DOCUMENT_ROOT'</span>] . <span class="st">'/temp/fatura_90210.pdf'</span>;
|
|
986
|
+
|
|
987
|
+
<span class="cm">// 2. Chargement du modèle HTML en externe (Output Buffering)</span>
|
|
988
|
+
<span class="fn">ob_start</span>();
|
|
989
|
+
<span class="kw">require_once</span> <span class="var">$_SERVER</span>[<span class="st">'DOCUMENT_ROOT'</span>] . <span class="st">'/views/email/siparis.php'</span>;
|
|
990
|
+
<span class="var">$htmlIcerik</span> = <span class="fn">ob_get_clean</span>();
|
|
991
|
+
|
|
992
|
+
<span class="cm">// 3. Envoi de l'e-mail</span>
|
|
993
|
+
<span class="var">Mailer</span>::create()
|
|
994
|
+
-><span class="fn">to</span>(<span class="st">'musteri@mail.com'</span>, <span class="st">'Ahmet Yılmaz'</span>)
|
|
995
|
+
-><span class="fn">bcc</span>(<span class="st">'arsiv@sirket.com'</span>) <span class="cm">// Le client ne peut pas voir cela</span>
|
|
996
|
+
-><span class="fn">subject</span>(<span class="st">'Siparişiniz Onaylandı: '</span> . <span class="var">$siparisNo</span>)
|
|
997
|
+
-><span class="fn">html</span>(<span class="var">$htmlIcerik</span>)
|
|
998
|
+
-><span class="fn">attach</span>(<span class="var">$pdfDosyasi</span>, <span class="st">'Siparis_Faturasi.pdf'</span>)
|
|
999
|
+
-><span class="fn">send</span>();</code></pre>
|
|
1000
|
+
</div>
|
|
1001
|
+
|
|
1002
|
+
<div class="card" id="svc-iyzico">
|
|
910
1003
|
<h2>Iyzico <span class="tag b-core" style="padding: 1px 5px; margin-left: 2px; font-weight: bold;" title="Ücretli/Lisanslı Servis">$</span></h2>
|
|
911
1004
|
<div class="alert a-info" style="margin-top: 10px; padding: 10px 15px; font-size: 0.85em;"><strong>📌 Adhésion et clés API :</strong> Pour utiliser l'infrastructure de paiement Iyzico <a href="https://www.iyzico.com" style="color: var(--green); font-weight: bold;" target="_blank">iyzico.com</a> (en direct) ou <a href="https://sandbox-merchants.iyzipay.com/" style="color: var(--green); font-weight: bold;" target="_blank">bac à sable.iyzipay.com</a> Vous devez créer un compte vendeur via (test) et obtenir vos clés API/Secret.</div>
|
|
912
1005
|
<div class="code-badge" style="margin-bottom: 15px; padding: 10px; background: rgba(0,0,0,0.2); border: 1px solid rgba(255,255,255,0.05); border-radius: 6px; font-family: monospace;">
|
package/core-stubs/docs/tr.html
CHANGED
|
@@ -283,9 +283,12 @@
|
|
|
283
283
|
<a href="#cli-go">go</a>
|
|
284
284
|
<a href="#cli-remove">remove</a>
|
|
285
285
|
<a href="#cli-version">version</a>
|
|
286
|
+
<a href="#cli-mode">mode</a>
|
|
286
287
|
<a href="#cli-serve">serve</a>
|
|
287
288
|
<a href="#cli-add">add</a>
|
|
288
289
|
<div class="sb-cat">Entegre Servisler</div>
|
|
290
|
+
<a href="#svc-qrcode">QR Code</a>
|
|
291
|
+
<a href="#svc-phpmailer">PHPMailer (Mail)</a>
|
|
289
292
|
<a href="#svc-iyzico">Iyzico <span class="tag b-core" style="padding: 1px 5px; margin-left: 2px; font-weight: bold;" title="Ücretli/Lisanslı Servis">$</span></a>
|
|
290
293
|
<a href="#svc-stripe">Stripe <span class="tag b-core" style="padding: 1px 5px; margin-left: 2px; font-weight: bold;" title="Ücretli/Lisanslı Servis">$</span></a>
|
|
291
294
|
<a href="#svc-jwt">JWT</a>
|
|
@@ -920,6 +923,15 @@ artiframe> <span class="fn">go</span> <span class="st">back</span>
|
|
|
920
923
|
</section>
|
|
921
924
|
|
|
922
925
|
|
|
926
|
+
<!-- mode -->
|
|
927
|
+
<section id="cli-mode">
|
|
928
|
+
<h2><code>mode</code> <span class="tag b-cli">CLI Komutu</span></h2>
|
|
929
|
+
<p>Projenin çalışma modunu (Geliştirme veya Canlı) tek komutla değiştirmenizi sağlar. Bu komut, manuel olarak <code>config/app-version.php</code> dosyasını açıp düzenleme zahmetinden kurtarır.</p>
|
|
930
|
+
<pre><code>artiframe> <span class="fn">mode</span> <span class="st">1</span>
|
|
931
|
+
✅ Prod modundan Debug moduna geçiş yapıldı.</code></pre>
|
|
932
|
+
<p>Canlı sürüme geçmek için <code>0</code> parametresini kullanabilirsiniz:</p>
|
|
933
|
+
<pre><code>artiframe> <span class="fn">mode</span> <span class="st">0</span></code></pre>
|
|
934
|
+
</section>
|
|
923
935
|
<!-- serve -->
|
|
924
936
|
<section id="cli-serve">
|
|
925
937
|
<h2><code>serve</code> <span class="tag b-cli">CLI Komutu</span></h2>
|
|
@@ -947,8 +959,10 @@ artiframe> <span class="fn">go</span> <span class="st">back</span>
|
|
|
947
959
|
<tr><th>Komut</th><th>Composer Paketi</th><th>Üretilen Sınıf Dosyası</th></tr>
|
|
948
960
|
</thead>
|
|
949
961
|
<tbody>
|
|
962
|
+
<tr><td><code>add phpmailer</code></td><td>phpmailer/phpmailer</td><td><span class="tag b-core">src/Service/Mailer.php</span></td></tr>
|
|
950
963
|
<tr><td><code>add iyzico</code></td><td>iyzipay/iyzipay-php</td><td><span class="tag b-core">src/Service/Iyzico.php</span></td></tr>
|
|
951
964
|
<tr><td><code>add stripe</code></td><td>stripe/stripe-php</td><td><span class="tag b-core">src/Service/Stripe.php</span></td></tr>
|
|
965
|
+
<tr><td><code>add qrcode</code></td><td>endroid/qr-code</td><td><span class="tag b-core">src/Service/QrCode.php</span></td></tr>
|
|
952
966
|
<tr><td><code>add jwt</code></td><td>firebase/php-jwt</td><td><span class="tag b-core">src/Auth/JwtAuth.php</span></td></tr>
|
|
953
967
|
<tr><td><code>add image</code></td><td>intervention/image</td><td><span class="tag b-core">src/Service/ImageProcessor.php</span></td></tr>
|
|
954
968
|
<tr><td><code>add s3</code></td><td>aws/aws-sdk-php</td><td><span class="tag b-core">src/Service/S3Storage.php</span></td></tr>
|
|
@@ -969,11 +983,11 @@ artiframe> <span class="fn">go</span> <span class="st">back</span>
|
|
|
969
983
|
<tr><th>Komut</th><th>Composer Paketi</th></tr>
|
|
970
984
|
</thead>
|
|
971
985
|
<tbody>
|
|
972
|
-
|
|
986
|
+
|
|
973
987
|
<tr><td><code>add mpdf</code></td><td>mpdf/mpdf</td></tr>
|
|
974
988
|
<tr><td><code>add dompdf</code></td><td>dompdf/dompdf</td></tr>
|
|
975
989
|
<tr><td><code>add spreadsheet</code></td><td>phpoffice/phpspreadsheet</td></tr>
|
|
976
|
-
|
|
990
|
+
|
|
977
991
|
<tr><td><code>add guzzle</code></td><td>guzzlehttp/guzzle</td></tr>
|
|
978
992
|
<tr><td><code>add uuid</code></td><td>ramsey/uuid</td></tr>
|
|
979
993
|
<tr><td><code>add carbon</code></td><td>nesbot/carbon</td></tr>
|
|
@@ -996,6 +1010,85 @@ artiframe> <span class="fn">go</span> <span class="st">back</span>
|
|
|
996
1010
|
<p>ArtiFrame, popüler paketleri doğrudan kullanmak yerine <strong>önceden yapılandırılmış Sarmalayıcı (Wrapper)</strong> sınıflarla kullanımınıza sunar.</p>
|
|
997
1011
|
|
|
998
1012
|
|
|
1013
|
+
<div class="card" id="svc-qrcode">
|
|
1014
|
+
<h2>QR Code</h2>
|
|
1015
|
+
<div class="alert a-info" style="margin-top: 10px; padding: 10px 15px; font-size: 0.85em;"><strong>📌 Sarmalayıcı Sınıf:</strong> <code>add qrcode</code> komutunu çalıştırdığınızda <code>endroid/qr-code</code> kütüphanesi yüklenir ve <code>src/Service/QrCode.php</code> sarmalayıcı sınıfı oluşturulur.</div>
|
|
1016
|
+
<p>Endroid QR Code kütüphanesinin zorlu nesne üretim (Builder/Writer) süreçlerini gizleyen, tek satırda QR kod oluşturup içine logo gömebileceğiniz modern ve akıcı (fluent) bir sınıftır.</p>
|
|
1017
|
+
|
|
1018
|
+
<h3 style="margin-top:20px; margin-bottom:10px; font-size: 1.1em; color: var(--text-color);">Metodlar ve Kullanımları</h3>
|
|
1019
|
+
<ul style="line-height: 1.6; margin-bottom: 20px;">
|
|
1020
|
+
<li><code>->generate('Metin')</code> : QR koda dönüştürülecek metni veya URL'i belirleyip zinciri başlatır.</li>
|
|
1021
|
+
<li><code>->size(300)</code> : QR kodun piksel cinsinden genişliğini/yüksekliğini belirler (örn: 300).</li>
|
|
1022
|
+
<li><code>->margin(10)</code> : QR kodun etrafındaki beyaz boşluğu belirler.</li>
|
|
1023
|
+
<li><code>->color('#000000', '#ffffff')</code> : Ön plan (çizgiler) ve Arka plan renklerini HEX kodu olarak belirler. (örn: <code>#000000, #ffffff</code>).</li>
|
|
1024
|
+
<li><code>->logo('/path/logo.png', 50, true)</code> : QR kodun tam ortasına bir resim (logo) gömer. Logoya giden fiziksel yolu, boyutunu ve arka planının delinip delinmeyeceğini (punchout) alır.</li>
|
|
1025
|
+
<li><code>->format('png')</code> : Çıktı formatını belirler. <code>png</code> veya <code>svg</code> desteklenir. Varsayılan: png.</li>
|
|
1026
|
+
<li><code>->save('/path/save.png')</code> : Oluşturulan QR kodu sunucuda fiziksel bir dosyaya kaydeder.</li>
|
|
1027
|
+
<li><code>->base64()</code> : QR kodu HTML <code><img src="..."></code> etiketi içinde doğrudan kullanabilmeniz için base64 string olarak döndürür.</li>
|
|
1028
|
+
<li><code>->output()</code> : QR kodu uygun HTTP başlıklarıyla (header) doğrudan tarayıcıya basar.</li>
|
|
1029
|
+
</ul>
|
|
1030
|
+
|
|
1031
|
+
<h3 style="margin-top:20px; margin-bottom:10px; font-size: 1.1em; color: var(--text-color);">Kullanım Örnekleri</h3>
|
|
1032
|
+
<pre><code><span class="kw">use</span> <span class="var">App\Service\QrCode</span>;
|
|
1033
|
+
|
|
1034
|
+
<span class="cm">// Örnek 1: Ekrana HTML Img olarak basma</span>
|
|
1035
|
+
<span class="var">$base64</span> = <span class="var">QrCode</span>::generate(<span class="st">'https://artiframe.dev'</span>)
|
|
1036
|
+
-><span class="fn">size</span>(400)
|
|
1037
|
+
-><span class="fn">logo</span>(<span class="var">$_SERVER</span>[<span class="st">'DOCUMENT_ROOT'</span>] . <span class="st">'/assets/logo.png'</span>)
|
|
1038
|
+
-><span class="fn">base64</span>();
|
|
1039
|
+
|
|
1040
|
+
<span class="kw">echo</span> <span class="st">'<img src="'</span> . <span class="var">$base64</span> . <span class="st">'" alt="QR">'</span>;
|
|
1041
|
+
|
|
1042
|
+
<span class="cm">// Örnek 2: Fiziksel PNG Olarak Kaydetme</span>
|
|
1043
|
+
<span class="var">QrCode</span>::generate(<span class="st">'VCARD Bilgileri'</span>)
|
|
1044
|
+
-><span class="fn">color</span>(<span class="st">'#ff0000'</span>, <span class="st">'#ffffff'</span>)
|
|
1045
|
+
-><span class="fn">save</span>(<span class="st">'/temp/kullanici_karti.png'</span>);
|
|
1046
|
+
|
|
1047
|
+
<span class="cm">// Örnek 3: API Endpoint olarak resmi tarayıcıya basma</span>
|
|
1048
|
+
<span class="var">QrCode</span>::generate(<span class="st">'https://artilingo.com'</span>)-><span class="fn">output</span>();</code></pre>
|
|
1049
|
+
</div>
|
|
1050
|
+
|
|
1051
|
+
<div class="card" id="svc-phpmailer">
|
|
1052
|
+
<h2>PHPMailer (Mail)</h2>
|
|
1053
|
+
<div class="alert a-info" style="margin-top: 10px; padding: 10px 15px; font-size: 0.85em;"><strong>📌 Otomatik .env Kurulumu:</strong> <code>add phpmailer</code> komutunu çalıştırdığınızda SMTP ayarları <code>.env</code> dosyanıza otomatik eklenir ve <code>src/Service/Mailer.php</code> sınıfı oluşturulur.</div>
|
|
1054
|
+
<p>PHPMailer kütüphanesi üzerinde çalışan, çok daha modern, akıcı (fluent) ve güvenli (CRLF korumalı) bir Sarmalayıcı (Wrapper) sınıfıdır. Sınıfın sunduğu tüm metodlar zincirlenebilir (chainable) yapıdadır.</p>
|
|
1055
|
+
|
|
1056
|
+
<h3 style="margin-top:20px; margin-bottom:10px; font-size: 1.1em; color: var(--text-color);">Metodlar ve Kullanımları</h3>
|
|
1057
|
+
<ul style="line-height: 1.6; margin-bottom: 20px;">
|
|
1058
|
+
<li><code>->to('mail@adres.com', 'İsim')</code> : E-postanın kime gönderileceğini belirler.</li>
|
|
1059
|
+
<li><code>->cc('mail@adres.com')</code> : Bilgi (Carbon Copy) alıcılarını ekler.</li>
|
|
1060
|
+
<li><code>->bcc('mail@adres.com')</code> : Gizli (Blind Carbon Copy) alıcılarını ekler. Birincil alıcılar bu adresleri göremez.</li>
|
|
1061
|
+
<li><code>->subject('Konu')</code> : E-postanın başlığını (konusunu) belirler.</li>
|
|
1062
|
+
<li><code>->attach('/path/fatura.pdf', 'Isim.pdf')</code> : Sunucudaki (veya temp) fiziksel bir dosyayı mailin içine ek (attachment) olarak koyar.</li>
|
|
1063
|
+
<li><code>->embedImage('/path/logo.png', 'logo_cid')</code> : E-posta içine HTML'de kullanılmak üzere (<code><img src="cid:logo_cid"></code>) resim gömer.</li>
|
|
1064
|
+
<li><code>->html('HTML Kodu')</code> : E-postanın HTML içeriğini ayarlar. Güvenlik için düz metin (AltBody) versiyonunu otomatik oluşturur.</li>
|
|
1065
|
+
<li><code>->text('Düz Metin')</code> : E-postayı sadece düz metin (Plain Text) olarak göndermek isterseniz kullanılır.</li>
|
|
1066
|
+
<li><code>->send()</code> : Zincirdeki tüm işlemleri tamamlayıp SMTP üzerinden maili yollar. Hata varsa Exception fırlatır.</li>
|
|
1067
|
+
</ul>
|
|
1068
|
+
|
|
1069
|
+
<h3 style="margin-top:20px; margin-bottom:10px; font-size: 1.1em; color: var(--text-color);">Gelişmiş Örnek: PHP Şablonu (View) ve Dinamik Dosya Gönderme</h3>
|
|
1070
|
+
<p>Eğer mailin HTML içeriğini spagetti kod gibi string içine yazmak istemiyorsanız, <code>ob_start()</code> kullanarak harici bir PHP şablon dosyasını (içinde değişkenler olan) içeri aktarabilir ve sistemde üretilen bir PDF'i direkt maile gömebilirsiniz:</p>
|
|
1071
|
+
<pre><code><span class="kw">use</span> <span class="var">App\Service\Mailer</span>;
|
|
1072
|
+
|
|
1073
|
+
<span class="cm">// 1. Dinamik verileriniz</span>
|
|
1074
|
+
<span class="var">$siparisNo</span> = <span class="st">'#90210'</span>;
|
|
1075
|
+
<span class="var">$pdfDosyasi</span> = <span class="var">$_SERVER</span>[<span class="st">'DOCUMENT_ROOT'</span>] . <span class="st">'/temp/fatura_90210.pdf'</span>;
|
|
1076
|
+
|
|
1077
|
+
<span class="cm">// 2. HTML Şablonunu dışarıdan yükleme (Output Buffering)</span>
|
|
1078
|
+
<span class="fn">ob_start</span>();
|
|
1079
|
+
<span class="kw">require_once</span> <span class="var">$_SERVER</span>[<span class="st">'DOCUMENT_ROOT'</span>] . <span class="st">'/views/email/siparis.php'</span>;
|
|
1080
|
+
<span class="var">$htmlIcerik</span> = <span class="fn">ob_get_clean</span>();
|
|
1081
|
+
|
|
1082
|
+
<span class="cm">// 3. Maili Gönderme</span>
|
|
1083
|
+
<span class="var">Mailer</span>::create()
|
|
1084
|
+
-><span class="fn">to</span>(<span class="st">'musteri@mail.com'</span>, <span class="st">'Ahmet Yılmaz'</span>)
|
|
1085
|
+
-><span class="fn">bcc</span>(<span class="st">'arsiv@sirket.com'</span>) <span class="cm">// Müşteri bunu göremez</span>
|
|
1086
|
+
-><span class="fn">subject</span>(<span class="st">'Siparişiniz Onaylandı: '</span> . <span class="var">$siparisNo</span>)
|
|
1087
|
+
-><span class="fn">html</span>(<span class="var">$htmlIcerik</span>)
|
|
1088
|
+
-><span class="fn">attach</span>(<span class="var">$pdfDosyasi</span>, <span class="st">'Siparis_Faturasi.pdf'</span>)
|
|
1089
|
+
-><span class="fn">send</span>();</code></pre>
|
|
1090
|
+
</div>
|
|
1091
|
+
|
|
999
1092
|
<div class="card" id="svc-iyzico">
|
|
1000
1093
|
<h2>Iyzico <span class="tag b-core" style="padding: 1px 5px; margin-left: 2px; font-weight: bold;" title="Ücretli/Lisanslı Servis">$</span></h2>
|
|
1001
1094
|
<div class="alert a-info" style="margin-top: 10px; padding: 10px 15px; font-size: 0.85em;"><strong>📌 Üyelik & API Anahtarları:</strong> Iyzico ödeme altyapısını kullanmak için <a href="https://www.iyzico.com" target="_blank" style="color: var(--green); font-weight: bold;">iyzico.com</a> (canlı) veya <a href="https://sandbox-merchants.iyzipay.com/" target="_blank" style="color: var(--green); font-weight: bold;">sandbox.iyzipay.com</a> (test) üzerinden satıcı hesabı oluşturup API/Secret anahtarlarınızı almanız gerekmektedir.</div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@artilingo/artiframe-cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "ArtiFrame — Zero-dependency native PHP framework with a powerful multilingual CLI. Scaffold projects, generate views, APIs and classes instantly.",
|
|
5
5
|
"main": "bin/artiframe.js",
|
|
6
6
|
"bin": {
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"bin/artiframe.php",
|
|
16
16
|
"src/",
|
|
17
17
|
"core-stubs/",
|
|
18
|
+
"stubs/",
|
|
18
19
|
"assets/",
|
|
19
20
|
"scripts/",
|
|
20
21
|
"LICENSE"
|
package/src/App.php
CHANGED
|
@@ -206,6 +206,10 @@ class App
|
|
|
206
206
|
break;
|
|
207
207
|
|
|
208
208
|
|
|
209
|
+
case 'mode':
|
|
210
|
+
(new \ArtiFrame\Cli\Commands\ModeCommand($this->translator))->execute($commandArgs);
|
|
211
|
+
break;
|
|
212
|
+
|
|
209
213
|
case 'remove':
|
|
210
214
|
(new \ArtiFrame\Cli\Commands\RemoveCommand($this->translator))->execute($commandArgs);
|
|
211
215
|
break;
|
|
@@ -341,6 +345,13 @@ class App
|
|
|
341
345
|
echo " " . $d . "└── " . $r . "Example: " . $lg . "remove src/Auth/UserManager.php" . $r . PHP_EOL;
|
|
342
346
|
echo PHP_EOL;
|
|
343
347
|
|
|
348
|
+
// mode
|
|
349
|
+
echo " " . $g . "mode" . $r . " " . $y . "<0|1>" . $r . PHP_EOL;
|
|
350
|
+
echo " " . $d . "│" . $r . " " . $t->get('HELP_MODE_DESC') . PHP_EOL;
|
|
351
|
+
echo " " . $d . "├── " . $r . "Example: " . $lg . "mode 1" . $r . $d . " (Debug)" . $r . PHP_EOL;
|
|
352
|
+
echo " " . $d . "└── " . $r . "Example: " . $lg . "mode 0" . $r . $d . " (Prod)" . $r . PHP_EOL;
|
|
353
|
+
echo PHP_EOL;
|
|
354
|
+
|
|
344
355
|
// serve
|
|
345
356
|
echo " " . $g . "serve" . $r . " " . $y . "[port]" . $r . PHP_EOL;
|
|
346
357
|
echo " " . $d . "│" . $r . " " . $t->get('HELP_SERVE_DESC') . PHP_EOL;
|
|
@@ -19,7 +19,7 @@ class AddCommand
|
|
|
19
19
|
private array $registry = [
|
|
20
20
|
// ── Entegrasyonlu Paketler (Composer + Servis Sınıfı + .env) ───
|
|
21
21
|
'iyzico' => [
|
|
22
|
-
'composer' => '
|
|
22
|
+
'composer' => 'iyzico/iyzipay-php',
|
|
23
23
|
'type' => 'integrated',
|
|
24
24
|
'service' => 'src/Service/Iyzico.php',
|
|
25
25
|
'stub' => 'iyzico.stub',
|
|
@@ -131,7 +131,19 @@ class AddCommand
|
|
|
131
131
|
// ── Direkt Kullanılabilir Paketler (Sadece Composer) ───────────
|
|
132
132
|
'phpmailer' => [
|
|
133
133
|
'composer' => 'phpmailer/phpmailer',
|
|
134
|
-
'type' => '
|
|
134
|
+
'type' => 'integrated',
|
|
135
|
+
'service' => 'src/Service/Mailer.php',
|
|
136
|
+
'stub' => 'phpmailer.stub',
|
|
137
|
+
'env' => [
|
|
138
|
+
'# ── mail (phpmailer) ──────────────────────',
|
|
139
|
+
'MAIL_HOST=smtp.mailtrap.io',
|
|
140
|
+
'MAIL_PORT=2525',
|
|
141
|
+
'MAIL_USERNAME=',
|
|
142
|
+
'MAIL_PASSWORD=',
|
|
143
|
+
'MAIL_ENCRYPTION=tls',
|
|
144
|
+
'MAIL_FROM_ADDRESS=hello@example.com',
|
|
145
|
+
'MAIL_FROM_NAME=ArtiFrame',
|
|
146
|
+
],
|
|
135
147
|
],
|
|
136
148
|
'mpdf' => [
|
|
137
149
|
'composer' => 'mpdf/mpdf',
|
|
@@ -147,7 +159,9 @@ class AddCommand
|
|
|
147
159
|
],
|
|
148
160
|
'qrcode' => [
|
|
149
161
|
'composer' => 'endroid/qr-code',
|
|
150
|
-
'type' => '
|
|
162
|
+
'type' => 'integrated',
|
|
163
|
+
'service' => 'src/Service/QrCode.php',
|
|
164
|
+
'stub' => 'qrcode.stub',
|
|
151
165
|
],
|
|
152
166
|
'guzzle' => [
|
|
153
167
|
'composer' => 'guzzlehttp/guzzle',
|
|
@@ -269,7 +283,7 @@ class AddCommand
|
|
|
269
283
|
*/
|
|
270
284
|
private function copyServiceStub(string $projectRoot, array $package, string $alias): void
|
|
271
285
|
{
|
|
272
|
-
$stubPath = \ARTIFRAME_CLI_ROOT . '/
|
|
286
|
+
$stubPath = \ARTIFRAME_CLI_ROOT . '/stubs/service/' . $package['stub'];
|
|
273
287
|
$targetPath = $projectRoot . '/' . $package['service'];
|
|
274
288
|
|
|
275
289
|
if (!file_exists($stubPath)) {
|
|
@@ -46,7 +46,7 @@ class MakeApiCommand
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
$stubName = 'api-' . $type . '.stub';
|
|
49
|
-
$stubPath =
|
|
49
|
+
$stubPath = \ARTIFRAME_CLI_ROOT . '/stubs/make/' . $stubName;
|
|
50
50
|
|
|
51
51
|
if (!file_exists($stubPath)) {
|
|
52
52
|
echo "❌ " . $this->translator->get('ERROR_STUB_NOT_FOUND', ['path' => $stubPath]) . PHP_EOL;
|
|
@@ -42,7 +42,7 @@ class MakeClassCommand
|
|
|
42
42
|
return;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
$stubPath =
|
|
45
|
+
$stubPath = \ARTIFRAME_CLI_ROOT . '/stubs/make/class.stub';
|
|
46
46
|
if (!file_exists($stubPath)) {
|
|
47
47
|
echo "❌ " . $this->translator->get('ERROR_STUB_NOT_FOUND', ['path' => $stubPath]) . PHP_EOL;
|
|
48
48
|
return;
|
|
@@ -53,7 +53,7 @@ class MakeViewCommand
|
|
|
53
53
|
$jsPath = $projectRoot . '/public' . $jsRelative;
|
|
54
54
|
|
|
55
55
|
// Stub path
|
|
56
|
-
$stubPath =
|
|
56
|
+
$stubPath = \ARTIFRAME_CLI_ROOT . '/stubs/make/view.stub';
|
|
57
57
|
if (!file_exists($stubPath)) {
|
|
58
58
|
echo "❌ " . $this->translator->get('ERROR_STUB_NOT_FOUND', ['path' => $stubPath]) . PHP_EOL;
|
|
59
59
|
echo $this->translator->get('ERROR_RUN_FROM_ROOT') . PHP_EOL;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
namespace ArtiFrame\Cli\Commands;
|
|
3
|
+
|
|
4
|
+
use ArtiFrame\Cli\Services\Translator;
|
|
5
|
+
|
|
6
|
+
class ModeCommand
|
|
7
|
+
{
|
|
8
|
+
private Translator $translator;
|
|
9
|
+
|
|
10
|
+
public function __construct(Translator $translator)
|
|
11
|
+
{
|
|
12
|
+
$this->translator = $translator;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
public function execute(array $args): void
|
|
16
|
+
{
|
|
17
|
+
$mode = $args[0] ?? null;
|
|
18
|
+
|
|
19
|
+
if ($mode !== '0' && $mode !== '1') {
|
|
20
|
+
echo "❌ " . $this->translator->get('MODE_INVALID') . PHP_EOL;
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
$projectRoot = getcwd();
|
|
25
|
+
$configFile = $projectRoot . '/config/app-version.php';
|
|
26
|
+
|
|
27
|
+
if (!file_exists($configFile)) {
|
|
28
|
+
echo "❌ " . $this->translator->get('MODE_NOT_PROJECT') . PHP_EOL;
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
$content = file_get_contents($configFile);
|
|
33
|
+
|
|
34
|
+
// Find current mode
|
|
35
|
+
$currentMode = null;
|
|
36
|
+
if (preg_match('/define\(\s*\'APP_ENV\'\s*,\s*(0|1)\s*\);/', $content, $matches)) {
|
|
37
|
+
$currentMode = $matches[1];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
$modeNames = [
|
|
41
|
+
'0' => 'Prod',
|
|
42
|
+
'1' => 'Debug'
|
|
43
|
+
];
|
|
44
|
+
|
|
45
|
+
if ($currentMode === $mode) {
|
|
46
|
+
if ($mode === '1') {
|
|
47
|
+
echo "ℹ️ " . $this->translator->get('MODE_ALREADY_DEBUG') . PHP_EOL;
|
|
48
|
+
} else {
|
|
49
|
+
echo "ℹ️ " . $this->translator->get('MODE_ALREADY_PROD') . PHP_EOL;
|
|
50
|
+
}
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Replace the mode
|
|
55
|
+
if ($currentMode !== null) {
|
|
56
|
+
$newContent = preg_replace(
|
|
57
|
+
'/define\(\s*\'APP_ENV\'\s*,\s*(0|1)\s*\);/',
|
|
58
|
+
"define('APP_ENV', {$mode});",
|
|
59
|
+
$content
|
|
60
|
+
);
|
|
61
|
+
file_put_contents($configFile, $newContent);
|
|
62
|
+
|
|
63
|
+
$oldName = $modeNames[$currentMode] ?? 'Bilinmeyen';
|
|
64
|
+
$newName = $modeNames[$mode] ?? 'Bilinmeyen';
|
|
65
|
+
|
|
66
|
+
echo "✅ " . $this->translator->get('MODE_CHANGED', ['old' => $oldName, 'new' => $newName]) . PHP_EOL;
|
|
67
|
+
} else {
|
|
68
|
+
echo "❌ config/app-version.php içinde APP_ENV tanımı bulunamadı." . PHP_EOL;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
package/src/Lang/de.php
CHANGED
|
@@ -159,4 +159,11 @@ return [
|
|
|
159
159
|
'HELP_SERVE_DESC' => 'Startet den lokalen Entwicklungsserver.',
|
|
160
160
|
|
|
161
161
|
'INVALID_PACKAGE_NAME' => 'Ungültiger Paketname. Das Format sollte wie folgt aussehen: vendor/project',
|
|
162
|
+
|
|
163
|
+
'MODE_ALREADY_DEBUG' => 'Debug-Modus ist bereits aktiv.',
|
|
164
|
+
'MODE_ALREADY_PROD' => 'Prod-Modus ist bereits aktiv.',
|
|
165
|
+
'MODE_CHANGED' => 'Vom :old- in den :new-Modus gewechselt.',
|
|
166
|
+
'MODE_INVALID' => 'Ungültiger Modus. Verwenden Sie 1 für Debug, 0 für Prod.',
|
|
167
|
+
'MODE_NOT_PROJECT' => 'ArtiFrame-Projekt nicht gefunden (config/app-version.php fehlt).',
|
|
168
|
+
'HELP_MODE_DESC' => 'Ändert den Anwendungsmodus (0=Prod, 1=Debug)',
|
|
162
169
|
];
|
package/src/Lang/en.php
CHANGED
|
@@ -159,4 +159,11 @@ return [
|
|
|
159
159
|
'HELP_SERVE_DESC' => 'Starts the local development server.',
|
|
160
160
|
|
|
161
161
|
'INVALID_PACKAGE_NAME' => 'Invalid package name. Format should look like: vendor/project',
|
|
162
|
+
|
|
163
|
+
'MODE_ALREADY_DEBUG' => 'Debug mode is already active.',
|
|
164
|
+
'MODE_ALREADY_PROD' => 'Prod mode is already active.',
|
|
165
|
+
'MODE_CHANGED' => 'Switched from :old to :new mode.',
|
|
166
|
+
'MODE_INVALID' => 'Invalid mode. Use 1 for Debug, 0 for Prod.',
|
|
167
|
+
'MODE_NOT_PROJECT' => 'ArtiFrame project not found (config/app-version.php missing).',
|
|
168
|
+
'HELP_MODE_DESC' => 'Changes the application mode (0=Prod, 1=Debug)',
|
|
162
169
|
];
|
package/src/Lang/es.php
CHANGED
|
@@ -159,4 +159,11 @@ return [
|
|
|
159
159
|
'HELP_SERVE_DESC' => 'Inicia el servidor de desarrollo local.',
|
|
160
160
|
|
|
161
161
|
'INVALID_PACKAGE_NAME' => 'Nombre de paquete no válido. El formato debería ser: vendor/project',
|
|
162
|
+
|
|
163
|
+
'MODE_ALREADY_DEBUG' => 'El modo de depuración ya está activo.',
|
|
164
|
+
'MODE_ALREADY_PROD' => 'El modo de producción ya está activo.',
|
|
165
|
+
'MODE_CHANGED' => 'Cambiado del modo :old al modo :new.',
|
|
166
|
+
'MODE_INVALID' => 'Modo no válido. Use 1 para Depuración, 0 para Producción.',
|
|
167
|
+
'MODE_NOT_PROJECT' => 'Proyecto ArtiFrame no encontrado (falta config/app-version.php).',
|
|
168
|
+
'HELP_MODE_DESC' => 'Cambia el modo de la aplicación (0=Prod, 1=Debug)',
|
|
162
169
|
];
|
package/src/Lang/fr.php
CHANGED
|
@@ -159,4 +159,11 @@ return [
|
|
|
159
159
|
'HELP_SERVE_DESC' => 'Démarre le serveur de développement local.',
|
|
160
160
|
|
|
161
161
|
'INVALID_PACKAGE_NAME' => 'Nom de package invalide. Le format doit ressembler à : vendor/project',
|
|
162
|
+
|
|
163
|
+
'MODE_ALREADY_DEBUG' => 'Le mode de débogage est déjà actif.',
|
|
164
|
+
'MODE_ALREADY_PROD' => 'Le mode de production est déjà actif.',
|
|
165
|
+
'MODE_CHANGED' => 'Passé du mode :old au mode :new.',
|
|
166
|
+
'MODE_INVALID' => 'Mode invalide. Utilisez 1 pour Débogage, 0 pour Production.',
|
|
167
|
+
'MODE_NOT_PROJECT' => 'Projet ArtiFrame introuvable (config/app-version.php manquant).',
|
|
168
|
+
'HELP_MODE_DESC' => 'Modifie le mode de l\'application (0=Prod, 1=Debug)',
|
|
162
169
|
];
|
package/src/Lang/tr.php
CHANGED
|
@@ -159,4 +159,11 @@ return [
|
|
|
159
159
|
'HELP_SERVE_DESC' => 'Lokal geliştirme sunucusunu başlatır.',
|
|
160
160
|
|
|
161
161
|
'INVALID_PACKAGE_NAME' => 'Geçersiz paket adı. Format şuna benzemeli: vendor/project',
|
|
162
|
+
|
|
163
|
+
'MODE_ALREADY_DEBUG' => 'Zaten debug mode aktif.',
|
|
164
|
+
'MODE_ALREADY_PROD' => 'Zaten prod mod aktif.',
|
|
165
|
+
'MODE_CHANGED' => ':old modundan :new moduna geçiş yapıldı.',
|
|
166
|
+
'MODE_INVALID' => 'Hatalı mod. Debug için 1, Prod için 0 kullanın.',
|
|
167
|
+
'MODE_NOT_PROJECT' => 'ArtiFrame projesi bulunamadı (config/app-version.php eksik).',
|
|
168
|
+
'HELP_MODE_DESC' => 'Uygulama çalışma modunu değiştirir (0=Prod, 1=Debug)',
|
|
162
169
|
];
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
/**
|
|
3
|
+
* ArtiFrame Core Engine
|
|
4
|
+
*
|
|
5
|
+
* @package ArtiFrame
|
|
6
|
+
* @author Artilingo
|
|
7
|
+
* @license AGPLv3 (Attribution-ShareAlike Required)
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
// İzin verilen HTTP metodları (Örn: GET, POST, PUT, DELETE)
|
|
11
|
+
$allowedMethods = ['POST'];
|
|
12
|
+
|
|
13
|
+
require_once $_SERVER['DOCUMENT_ROOT'] . '/../app/ApiControl.php';
|
|
14
|
+
|
|
15
|
+
use Bin\SystemMethod;
|
|
16
|
+
|
|
17
|
+
// API İş Mantığı (Business Logic) Başlangıcı
|
|
18
|
+
// ...
|
|
19
|
+
|
|
20
|
+
jsonResponse(['status' => 'success', 'message' => 'İşlem başarılı.'], 200);
|