@@ -102,6 +102,44 @@ public function chmod(string|iterable $files, int $mode, int $umask = 0o000, boo
102102 parent ::chmod ($ this ->getAbsolutePath ($ files ), $ mode , $ umask , $ recursive );
103103 }
104104
105+ /**
106+ * Removes files, symbolic links, or directories.
107+ *
108+ * @param iterable<string>|string $files the file(s), link(s), or directory(ies) to remove
109+ */
110+ #[Override]
111+ public function remove (string |iterable $ files ): void
112+ {
113+ parent ::remove ($ this ->getAbsolutePath ($ files ));
114+ }
115+
116+ /**
117+ * Creates a symbolic link.
118+ *
119+ * @param string $originDir the origin path the link MUST point to
120+ * @param string $targetDir the link path to create
121+ * @param bool $copyOnWindows whether directories SHOULD be copied on Windows instead of linked
122+ */
123+ #[Override]
124+ public function symlink (string $ originDir , string $ targetDir , bool $ copyOnWindows = false ): void
125+ {
126+ parent ::symlink ($ this ->getAbsolutePath ($ originDir ), $ this ->getAbsolutePath ($ targetDir ), $ copyOnWindows );
127+ }
128+
129+ /**
130+ * Reads a symbolic link target.
131+ *
132+ * @param string $path the symbolic link path
133+ * @param bool $canonicalize whether the returned path SHOULD be canonicalized
134+ *
135+ * @return string|null the link target, or null when the path is not a symbolic link
136+ */
137+ #[Override]
138+ public function readlink (string $ path , bool $ canonicalize = false ): ?string
139+ {
140+ return parent ::readlink ($ this ->getAbsolutePath ($ path ), $ canonicalize );
141+ }
142+
105143 /**
106144 * Resolves a path or iterable of paths into their absolute path representation.
107145 *
0 commit comments