izniburak

izniburak

buki. software engineer & full-stack developer. #php #java #nodejs #go #react-native #react #docker #k8s

Member Since 8 years ago

@Jotform, @habersistemim , Ankara, Turkey

Experience Points
279
follower
Lessons Completed
93
follow
Lessons Completed
1.6k
stars
Best Reply Awards
48
repos

290 contributions in the last year

Pinned
⚡ nur - a simple framework for PHP
⚡ Simple and useful LAMP & LEMP and more stack environments to use on Docker.
⚡ useful query builder class that works with PHP PDO class for simple access your data.
⚡ simple and flexible Router class for PHP. with Controllers and Middlewares support.
⚡ React Native Starter Kit
⚡ Auto Route Generating (Auto-Discovery) Package for Laravel.
Activity
Jan
23
3 hours ago
Activity icon
published release v2.5.0

izniburak in izniburak/php-router create published release v2.5.0

createdAt 10 minutes ago
Activity icon
created tag
createdAt 11 minutes ago
Activity icon
wiki
created time in 13 minutes ago
Activity icon
wiki
created time in 15 minutes ago
Activity icon
wiki
created time in 30 minutes ago
Activity icon
wiki
created time in 30 minutes ago
Activity icon
wiki
created time in 35 minutes ago
push

izniburak push izniburak/php-router

izniburak
izniburak

Added XGET request method. Also added new test cases.

commit sha: f7dfc53f9c6aaa743f3892030d969d4e490134c1

push time in 37 minutes ago
Activity icon
wiki
created time in 45 minutes ago
push

izniburak push izniburak/php-router

izniburak
izniburak

Added controller __invoke support, exception handler customization. Also, some improvements.

commit sha: ec19a9a4f882b284a087aff887d0560f1de386db

push time in 1 hour ago
Jan
22
1 day ago
Activity icon
issue

izniburak issue izniburak/php-router

izniburak
izniburak

send current route to middleware

I am making a modular site:

  • User module
  • Module publications
  • Gallery module
  • Social networks module
  • etc.

Each module has its own group path with its respective middleware. For example.

$this-> route-> group ('/ panel/user', function ($ r) {
 #code here
}, ['before' => 'sessionMiddleware']); 

$this-> route-> group ('/ panel/galerry', function ($ r) {
 #code here
}, ['before' => 'sessionMiddleware']); 

How can I go about sending the current route as a parameter to the middleware?

For example. With the same middleware you can validate that the user has access to the gallery group, but not to the users group.

If this is not possible, can you recommend a viable option please?

Thanks guys.

push

izniburak push izniburak/php-router

izniburak
izniburak

Added tests and workflow. Also, fixed some little bugs.

commit sha: 5c7a11d7e4ccd2481a11f0b565edb50edb99b53d

push time in 17 hours ago
Jan
21
2 days ago
Activity icon
issue

izniburak issue comment izniburak/php-router

izniburak
izniburak

v2.3.4 ile kütüphane çalışmaz oldu

Merhaba.

Kütüphaneyi v2.3.0 sürümünden beri kullanıyorum. Bugün bağımlılıkları güncelledim ve bu kütüphane son güncel sürüme güncellenince çalışmamaya başladı.

Çalışmamasından kastım pathlerin çalışmaması. Tüm pathler güncelleme sonrasında 404'ü döndürmeye başladı.

Sürüm düşüre düşüre v2.3.4 ile yapılan düzenlemeden sonra çalışmadığını fark ettim. (https://github.com/izniburak/php-router/releases/tag/v2.3.4)

Composer'dan v2.3.3'e sabitleyince tekrar çalışmaya başlıyor.

Benim kodumla ilgili mi acaba veya kullanımda bir değişiklik mi olduğu diye düşündüm. Bunun üzerine README.md'deki örnek kodu Controller kısımlarını silip farklı sürümlerde çalıştırmayı denedim.

index.php

<?php
require 'vendor/autoload.php';

use Buki\Router\Router;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

$router = new Router;

// For basic GET URI
$router->get('/', function(Request $request, Response $response) {
    $response->setContent('Hello World');
    return $response;

    # OR
    # return 'Hello World!';
});

$router->run();

composer.json (^2.0)

{
    "require": {
        "izniburak/router": "^2.0"
    }
}

Bu şekilde iken son sürüm olan v2.3.5'i yüklüyor ve çalışmıyor. (2.3.4'e sabitleyince de çalışmıyor) "Hello World" yazması gerekirken varsayılan 404 sayfası geliyor, "Opps! An error occurred. Looks like page not found or something went wrong. Please try again."

composer.json (2.3.3)

{
    "require": {
        "izniburak/router": "2.3.3"
    }
}

Ancak sürümü 2.3.3'e sabitleyince çalışmaya başlıyor, "Hello World" yazıyor.

izniburak
izniburak

2.4.1 versiyonuyla beraber, sorunlar giderilmiştir :)

Activity icon
created tag
createdAt 1 day ago
push

izniburak push izniburak/php-router

izniburak
izniburak

Fixed issue related with regex for running path.

commit sha: 2fa8fd53950987d220d74217c08a506be410f9bb

push time in 1 day ago
Activity icon
issue

izniburak issue comment izniburak/php-router

izniburak
izniburak

v2.3.4 ile kütüphane çalışmaz oldu

Merhaba.

Kütüphaneyi v2.3.0 sürümünden beri kullanıyorum. Bugün bağımlılıkları güncelledim ve bu kütüphane son güncel sürüme güncellenince çalışmamaya başladı.

Çalışmamasından kastım pathlerin çalışmaması. Tüm pathler güncelleme sonrasında 404'ü döndürmeye başladı.

Sürüm düşüre düşüre v2.3.4 ile yapılan düzenlemeden sonra çalışmadığını fark ettim. (https://github.com/izniburak/php-router/releases/tag/v2.3.4)

Composer'dan v2.3.3'e sabitleyince tekrar çalışmaya başlıyor.

Benim kodumla ilgili mi acaba veya kullanımda bir değişiklik mi olduğu diye düşündüm. Bunun üzerine README.md'deki örnek kodu Controller kısımlarını silip farklı sürümlerde çalıştırmayı denedim.

index.php

<?php
require 'vendor/autoload.php';

use Buki\Router\Router;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

$router = new Router;

// For basic GET URI
$router->get('/', function(Request $request, Response $response) {
    $response->setContent('Hello World');
    return $response;

    # OR
    # return 'Hello World!';
});

$router->run();

composer.json (^2.0)

{
    "require": {
        "izniburak/router": "^2.0"
    }
}

Bu şekilde iken son sürüm olan v2.3.5'i yüklüyor ve çalışmıyor. (2.3.4'e sabitleyince de çalışmıyor) "Hello World" yazması gerekirken varsayılan 404 sayfası geliyor, "Opps! An error occurred. Looks like page not found or something went wrong. Please try again."

composer.json (2.3.3)

{
    "require": {
        "izniburak/router": "2.3.3"
    }
}

Ancak sürümü 2.3.3'e sabitleyince çalışmaya başlıyor, "Hello World" yazıyor.

izniburak
izniburak

Dün akşam bir güncelleme yayınladım ve bir update yaptım paket ile ilgili. 2.4.0 sürümüne yükseltmeyi deneyebilir misin?

Jan
20
3 days ago
Activity icon
published release v2.4.0

izniburak in izniburak/php-router create published release v2.4.0

createdAt 2 days ago
Activity icon
created tag
createdAt 2 days ago
push

izniburak push izniburak/php-router

izniburak
izniburak

Updated 'error' function to handle not founds erros better. Also, fixed server path issue.

commit sha: d2c100257db06cb5278ec4a34a25685a28beca1e

push time in 2 days ago
Activity icon
issue

izniburak issue comment izniburak/php-router

izniburak
izniburak

v2.3.4 ile kütüphane çalışmaz oldu

Merhaba.

Kütüphaneyi v2.3.0 sürümünden beri kullanıyorum. Bugün bağımlılıkları güncelledim ve bu kütüphane son güncel sürüme güncellenince çalışmamaya başladı.

Çalışmamasından kastım pathlerin çalışmaması. Tüm pathler güncelleme sonrasında 404'ü döndürmeye başladı.

Sürüm düşüre düşüre v2.3.4 ile yapılan düzenlemeden sonra çalışmadığını fark ettim. (https://github.com/izniburak/php-router/releases/tag/v2.3.4)

Composer'dan v2.3.3'e sabitleyince tekrar çalışmaya başlıyor.

Benim kodumla ilgili mi acaba veya kullanımda bir değişiklik mi olduğu diye düşündüm. Bunun üzerine README.md'deki örnek kodu Controller kısımlarını silip farklı sürümlerde çalıştırmayı denedim.

index.php

<?php
require 'vendor/autoload.php';

use Buki\Router\Router;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

$router = new Router;

// For basic GET URI
$router->get('/', function(Request $request, Response $response) {
    $response->setContent('Hello World');
    return $response;

    # OR
    # return 'Hello World!';
});

$router->run();

composer.json (^2.0)

{
    "require": {
        "izniburak/router": "^2.0"
    }
}

Bu şekilde iken son sürüm olan v2.3.5'i yüklüyor ve çalışmıyor. (2.3.4'e sabitleyince de çalışmıyor) "Hello World" yazması gerekirken varsayılan 404 sayfası geliyor, "Opps! An error occurred. Looks like page not found or something went wrong. Please try again."

composer.json (2.3.3)

{
    "require": {
        "izniburak/router": "2.3.3"
    }
}

Ancak sürümü 2.3.3'e sabitleyince çalışmaya başlıyor, "Hello World" yazıyor.

izniburak
izniburak

Merhabalar,

Hangi sistem üzerinde çalıştırmayı deniyorsunuz? Setupınız nedir? OS, PHP sürümü, Web Server vs bilgi verebilir misiniz? Benim denemelerime göre bir problem görünmüyor ama, detaylı inceleme yapabilirim.

Jan
19
4 days ago
started
started time in 3 days ago
Jan
18
5 days ago
Activity icon
created tag
createdAt 4 days ago
push

izniburak push izniburak/php-router

izniburak
izniburak

Fixed issue related with returning Response instance to json.

commit sha: cb3be113406df0fc9fe20f2f12f7a27368277aee

push time in 4 days ago
Jan
16
1 week ago
started
started time in 6 days ago
Activity icon
issue

izniburak issue comment izniburak/php-router

izniburak
izniburak

Is there any way to serve public directory without /public/ ?

Hi,

I am using this library in my project. My project has front-end codes written vue-cli and back-end codes written pure PHP. I want to make it monolith it because this project is going to be like Wordpress. So users who using my project can use it easily. In other words my project is going to be ready-to-use for people.

Now, there is built front-end codes in a directory called public. How can I bypass /public/ substring in the URL? When I put built codes at root directory of my project, it run correctly. But it is not best practice.

Finally I am not sure that this problem is about routing. If it is not about routing, sorry :smile: and I am open to different ideas about my project structure.

I wish you a good coding day :man_technologist:

izniburak
izniburak

Hi,

What's the your project structure?

You can try such a following structure:

|- Controllers
|- Middewares
|- public
|----index.php
|- vendors
|- composer.json

According to directory structure above, you can create a file to public/index.php and add following lines:

require __DIR__ . '/../vendor/autoload.php';

use Buki\Router\Router;

$router = new Router([
  'paths' => [
    'controllers' => __DIR__ . '/../Controllers',
    'middlewares' => __DIR__ . '/../Middlewares',
  ],
  // ... other configs
]);

// For basic GET URI
$router->get('/', function() {
    return 'Hello World!';
});

$router->run();

Note: I released a new version of the package yesterday. Please update the package version via composer update command in your project when try this suggestion.

If the problem still continue, please let me know.

Activity icon
created tag
createdAt 1 week ago
Previous